aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-11-20 08:42:58 +0000
committerAleksey Kladov <[email protected]>2019-11-20 08:46:44 +0000
commit0e771915faf057ec4561224b75ec9b5be93d71c8 (patch)
tree3da030379556170d1d18235c234ae95bbe28fba4 /crates/ra_syntax
parent4340d9b0e435bde11c0cc79e9f284856a836ccdc (diff)
Allow non-path default type parameters
Diffstat (limited to 'crates/ra_syntax')
-rw-r--r--crates/ra_syntax/src/ast/generated.rs7
-rw-r--r--crates/ra_syntax/src/ast/traits.rs6
-rw-r--r--crates/ra_syntax/src/grammar.ron5
3 files changed, 9 insertions, 9 deletions
diff --git a/crates/ra_syntax/src/ast/generated.rs b/crates/ra_syntax/src/ast/generated.rs
index 2b381dcdb..de506d7cd 100644
--- a/crates/ra_syntax/src/ast/generated.rs
+++ b/crates/ra_syntax/src/ast/generated.rs
@@ -3625,8 +3625,11 @@ impl AstNode for TypeParam {
3625impl ast::NameOwner for TypeParam {} 3625impl ast::NameOwner for TypeParam {}
3626impl ast::AttrsOwner for TypeParam {} 3626impl ast::AttrsOwner for TypeParam {}
3627impl ast::TypeBoundsOwner for TypeParam {} 3627impl ast::TypeBoundsOwner for TypeParam {}
3628impl ast::DefaultTypeParamOwner for TypeParam {} 3628impl TypeParam {
3629impl TypeParam {} 3629 pub fn default_type(&self) -> Option<TypeRef> {
3630 AstChildren::new(&self.syntax).next()
3631 }
3632}
3630#[derive(Debug, Clone, PartialEq, Eq, Hash)] 3633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3631pub struct TypeParamList { 3634pub struct TypeParamList {
3632 pub(crate) syntax: SyntaxNode, 3635 pub(crate) syntax: SyntaxNode,
diff --git a/crates/ra_syntax/src/ast/traits.rs b/crates/ra_syntax/src/ast/traits.rs
index c2b005886..f99984fe0 100644
--- a/crates/ra_syntax/src/ast/traits.rs
+++ b/crates/ra_syntax/src/ast/traits.rs
@@ -163,9 +163,3 @@ impl Iterator for CommentIter {
163 self.iter.by_ref().find_map(|el| el.into_token().and_then(ast::Comment::cast)) 163 self.iter.by_ref().find_map(|el| el.into_token().and_then(ast::Comment::cast))
164 } 164 }
165} 165}
166
167pub trait DefaultTypeParamOwner: AstNode {
168 fn default_type(&self) -> Option<ast::PathType> {
169 child_opt(self)
170 }
171}
diff --git a/crates/ra_syntax/src/grammar.ron b/crates/ra_syntax/src/grammar.ron
index 70d85a8e6..88d1dc109 100644
--- a/crates/ra_syntax/src/grammar.ron
+++ b/crates/ra_syntax/src/grammar.ron
@@ -587,7 +587,10 @@ Grammar(
587 ("lifetime_params", "LifetimeParam" ), 587 ("lifetime_params", "LifetimeParam" ),
588 ] 588 ]
589 ), 589 ),
590 "TypeParam": ( traits: ["NameOwner", "AttrsOwner", "TypeBoundsOwner", "DefaultTypeParamOwner"] ), 590 "TypeParam": (
591 options: [("default_type", "TypeRef")],
592 traits: ["NameOwner", "AttrsOwner", "TypeBoundsOwner"],
593 ),
591 "LifetimeParam": ( 594 "LifetimeParam": (
592 traits: ["AttrsOwner"], 595 traits: ["AttrsOwner"],
593 ), 596 ),