diff options
Diffstat (limited to 'crates/ra_syntax/src')
-rw-r--r-- | crates/ra_syntax/src/ast/generated.rs | 30 | ||||
-rw-r--r-- | crates/ra_syntax/src/grammar.ron | 5 |
2 files changed, 35 insertions, 0 deletions
diff --git a/crates/ra_syntax/src/ast/generated.rs b/crates/ra_syntax/src/ast/generated.rs index 8d65e2e08..9f9d6e63c 100644 --- a/crates/ra_syntax/src/ast/generated.rs +++ b/crates/ra_syntax/src/ast/generated.rs | |||
@@ -551,6 +551,36 @@ impl ConstDef { | |||
551 | } | 551 | } |
552 | } | 552 | } |
553 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | 553 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] |
554 | pub struct ConstParam { | ||
555 | pub(crate) syntax: SyntaxNode, | ||
556 | } | ||
557 | impl AstNode for ConstParam { | ||
558 | fn can_cast(kind: SyntaxKind) -> bool { | ||
559 | match kind { | ||
560 | CONST_PARAM => true, | ||
561 | _ => false, | ||
562 | } | ||
563 | } | ||
564 | fn cast(syntax: SyntaxNode) -> Option<Self> { | ||
565 | if Self::can_cast(syntax.kind()) { | ||
566 | Some(Self { syntax }) | ||
567 | } else { | ||
568 | None | ||
569 | } | ||
570 | } | ||
571 | fn syntax(&self) -> &SyntaxNode { | ||
572 | &self.syntax | ||
573 | } | ||
574 | } | ||
575 | impl ast::NameOwner for ConstParam {} | ||
576 | impl ast::AttrsOwner for ConstParam {} | ||
577 | impl ast::TypeAscriptionOwner for ConstParam {} | ||
578 | impl ConstParam { | ||
579 | pub fn default_val(&self) -> Option<Expr> { | ||
580 | AstChildren::new(&self.syntax).next() | ||
581 | } | ||
582 | } | ||
583 | #[derive(Debug, Clone, PartialEq, Eq, Hash)] | ||
554 | pub struct ContinueExpr { | 584 | pub struct ContinueExpr { |
555 | pub(crate) syntax: SyntaxNode, | 585 | pub(crate) syntax: SyntaxNode, |
556 | } | 586 | } |
diff --git a/crates/ra_syntax/src/grammar.ron b/crates/ra_syntax/src/grammar.ron index 3f1cd0b90..08aafb610 100644 --- a/crates/ra_syntax/src/grammar.ron +++ b/crates/ra_syntax/src/grammar.ron | |||
@@ -245,6 +245,7 @@ Grammar( | |||
245 | "TYPE_PARAM_LIST", | 245 | "TYPE_PARAM_LIST", |
246 | "LIFETIME_PARAM", | 246 | "LIFETIME_PARAM", |
247 | "TYPE_PARAM", | 247 | "TYPE_PARAM", |
248 | "CONST_PARAM", | ||
248 | "TYPE_ARG_LIST", | 249 | "TYPE_ARG_LIST", |
249 | "LIFETIME_ARG", | 250 | "LIFETIME_ARG", |
250 | "TYPE_ARG", | 251 | "TYPE_ARG", |
@@ -604,6 +605,10 @@ Grammar( | |||
604 | options: [("default_type", "TypeRef")], | 605 | options: [("default_type", "TypeRef")], |
605 | traits: ["NameOwner", "AttrsOwner", "TypeBoundsOwner"], | 606 | traits: ["NameOwner", "AttrsOwner", "TypeBoundsOwner"], |
606 | ), | 607 | ), |
608 | "ConstParam": ( | ||
609 | options: [("default_val", "Expr")], | ||
610 | traits: ["NameOwner", "AttrsOwner", "TypeAscriptionOwner"], | ||
611 | ), | ||
607 | "LifetimeParam": ( | 612 | "LifetimeParam": ( |
608 | traits: ["AttrsOwner"], | 613 | traits: ["AttrsOwner"], |
609 | ), | 614 | ), |