about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAleksey Kladov <aleksey.kladov@gmail.com>2020-04-10 10:29:59 +0200
committerAleksey Kladov <aleksey.kladov@gmail.com>2020-04-10 16:10:28 +0200
commit548f562ddad3bca515b304f82e110aeb319591e3 (patch)
tree71da0dc60264eee24fa809539f9d218b3c4c4a17
parent460c8bbdec8561a581d035f9767b7dd1ba36cfd7 (diff)
downloadrust-548f562ddad3bca515b304f82e110aeb319591e3.tar.gz
rust-548f562ddad3bca515b304f82e110aeb319591e3.zip
Other delimiters
-rw-r--r--crates/ra_syntax/src/ast/generated/nodes.rs64
-rw-r--r--xtask/src/ast_src.rs36
-rw-r--r--xtask/src/codegen/gen_syntax.rs4
3 files changed, 54 insertions, 50 deletions
diff --git a/crates/ra_syntax/src/ast/generated/nodes.rs b/crates/ra_syntax/src/ast/generated/nodes.rs
index 3c917257ce9..0ae5db9fc23 100644
--- a/crates/ra_syntax/src/ast/generated/nodes.rs
+++ b/crates/ra_syntax/src/ast/generated/nodes.rs
@@ -187,9 +187,9 @@ impl AstNode for TupleFieldDefList {
     fn syntax(&self) -> &SyntaxNode { &self.syntax }
 }
 impl TupleFieldDefList {
-    pub fn l_paren_token(&self) -> Option<LParen> { support::token(&self.syntax) }
+    pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['(']) }
     pub fn fields(&self) -> AstChildren<TupleFieldDef> { support::children(&self.syntax) }
-    pub fn r_paren_token(&self) -> Option<RParen> { support::token(&self.syntax) }
+    pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![')']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct TupleFieldDef {
@@ -483,9 +483,9 @@ impl AstNode for ParenType {
     fn syntax(&self) -> &SyntaxNode { &self.syntax }
 }
 impl ParenType {
-    pub fn l_paren_token(&self) -> Option<LParen> { support::token(&self.syntax) }
+    pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['(']) }
     pub fn type_ref(&self) -> Option<TypeRef> { support::child(&self.syntax) }
-    pub fn r_paren_token(&self) -> Option<RParen> { support::token(&self.syntax) }
+    pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![')']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct TupleType {
@@ -503,9 +503,9 @@ impl AstNode for TupleType {
     fn syntax(&self) -> &SyntaxNode { &self.syntax }
 }
 impl TupleType {
-    pub fn l_paren_token(&self) -> Option<LParen> { support::token(&self.syntax) }
+    pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['(']) }
     pub fn fields(&self) -> AstChildren<TypeRef> { support::children(&self.syntax) }
-    pub fn r_paren_token(&self) -> Option<RParen> { support::token(&self.syntax) }
+    pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![')']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct NeverType {
@@ -580,11 +580,11 @@ impl AstNode for ArrayType {
     fn syntax(&self) -> &SyntaxNode { &self.syntax }
 }
 impl ArrayType {
-    pub fn l_brack_token(&self) -> Option<LBrack> { support::token(&self.syntax) }
+    pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['[']) }
     pub fn type_ref(&self) -> Option<TypeRef> { support::child(&self.syntax) }
     pub fn semicolon_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![;]) }
     pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
-    pub fn r_brack_token(&self) -> Option<RBrack> { support::token(&self.syntax) }
+    pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![']']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct SliceType {
@@ -602,9 +602,9 @@ impl AstNode for SliceType {
     fn syntax(&self) -> &SyntaxNode { &self.syntax }
 }
 impl SliceType {
-    pub fn l_brack_token(&self) -> Option<LBrack> { support::token(&self.syntax) }
+    pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['[']) }
     pub fn type_ref(&self) -> Option<TypeRef> { support::child(&self.syntax) }
-    pub fn r_brack_token(&self) -> Option<RBrack> { support::token(&self.syntax) }
+    pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![']']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct ReferenceType {
@@ -742,9 +742,9 @@ impl AstNode for TupleExpr {
 }
 impl ast::AttrsOwner for TupleExpr {}
 impl TupleExpr {
-    pub fn l_paren_token(&self) -> Option<LParen> { support::token(&self.syntax) }
+    pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['(']) }
     pub fn exprs(&self) -> AstChildren<Expr> { support::children(&self.syntax) }
-    pub fn r_paren_token(&self) -> Option<RParen> { support::token(&self.syntax) }
+    pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![')']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct ArrayExpr {
@@ -763,10 +763,10 @@ impl AstNode for ArrayExpr {
 }
 impl ast::AttrsOwner for ArrayExpr {}
 impl ArrayExpr {
-    pub fn l_brack_token(&self) -> Option<LBrack> { support::token(&self.syntax) }
+    pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['[']) }
     pub fn exprs(&self) -> AstChildren<Expr> { support::children(&self.syntax) }
     pub fn semicolon_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![;]) }
-    pub fn r_brack_token(&self) -> Option<RBrack> { support::token(&self.syntax) }
+    pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![']']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct ParenExpr {
@@ -785,9 +785,9 @@ impl AstNode for ParenExpr {
 }
 impl ast::AttrsOwner for ParenExpr {}
 impl ParenExpr {
-    pub fn l_paren_token(&self) -> Option<LParen> { support::token(&self.syntax) }
+    pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['(']) }
     pub fn expr(&self) -> Option<Expr> { support::child(&self.syntax) }
-    pub fn r_paren_token(&self) -> Option<RParen> { support::token(&self.syntax) }
+    pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![')']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct PathExpr {
@@ -1095,8 +1095,8 @@ impl AstNode for IndexExpr {
 }
 impl ast::AttrsOwner for IndexExpr {}
 impl IndexExpr {
-    pub fn l_brack_token(&self) -> Option<LBrack> { support::token(&self.syntax) }
-    pub fn r_brack_token(&self) -> Option<RBrack> { support::token(&self.syntax) }
+    pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['[']) }
+    pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![']']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct FieldExpr {
@@ -1478,9 +1478,9 @@ impl AstNode for ParenPat {
     fn syntax(&self) -> &SyntaxNode { &self.syntax }
 }
 impl ParenPat {
-    pub fn l_paren_token(&self) -> Option<LParen> { support::token(&self.syntax) }
+    pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['(']) }
     pub fn pat(&self) -> Option<Pat> { support::child(&self.syntax) }
-    pub fn r_paren_token(&self) -> Option<RParen> { support::token(&self.syntax) }
+    pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![')']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct RefPat {
@@ -1614,9 +1614,9 @@ impl AstNode for SlicePat {
     fn syntax(&self) -> &SyntaxNode { &self.syntax }
 }
 impl SlicePat {
-    pub fn l_brack_token(&self) -> Option<LBrack> { support::token(&self.syntax) }
+    pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['[']) }
     pub fn args(&self) -> AstChildren<Pat> { support::children(&self.syntax) }
-    pub fn r_brack_token(&self) -> Option<RBrack> { support::token(&self.syntax) }
+    pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![']']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct RangePat {
@@ -1756,9 +1756,9 @@ impl AstNode for TupleStructPat {
 }
 impl TupleStructPat {
     pub fn path(&self) -> Option<Path> { support::child(&self.syntax) }
-    pub fn l_paren_token(&self) -> Option<LParen> { support::token(&self.syntax) }
+    pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['(']) }
     pub fn args(&self) -> AstChildren<Pat> { support::children(&self.syntax) }
-    pub fn r_paren_token(&self) -> Option<RParen> { support::token(&self.syntax) }
+    pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![')']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct TuplePat {
@@ -1776,9 +1776,9 @@ impl AstNode for TuplePat {
     fn syntax(&self) -> &SyntaxNode { &self.syntax }
 }
 impl TuplePat {
-    pub fn l_paren_token(&self) -> Option<LParen> { support::token(&self.syntax) }
+    pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['(']) }
     pub fn args(&self) -> AstChildren<Pat> { support::children(&self.syntax) }
-    pub fn r_paren_token(&self) -> Option<RParen> { support::token(&self.syntax) }
+    pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![')']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct Visibility {
@@ -1879,11 +1879,11 @@ impl AstNode for Attr {
 impl Attr {
     pub fn pound_token(&self) -> Option<Pound> { support::token(&self.syntax) }
     pub fn excl_token(&self) -> Option<Excl> { support::token(&self.syntax) }
-    pub fn l_brack_token(&self) -> Option<LBrack> { support::token(&self.syntax) }
+    pub fn l_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['[']) }
     pub fn path(&self) -> Option<Path> { support::child(&self.syntax) }
     pub fn eq_token(&self) -> Option<Eq> { support::token(&self.syntax) }
     pub fn input(&self) -> Option<AttrInput> { support::child(&self.syntax) }
-    pub fn r_brack_token(&self) -> Option<RBrack> { support::token(&self.syntax) }
+    pub fn r_brack_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![']']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct TokenTree {
@@ -2186,10 +2186,10 @@ impl AstNode for ParamList {
     fn syntax(&self) -> &SyntaxNode { &self.syntax }
 }
 impl ParamList {
-    pub fn l_paren_token(&self) -> Option<LParen> { support::token(&self.syntax) }
+    pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['(']) }
     pub fn self_param(&self) -> Option<SelfParam> { support::child(&self.syntax) }
     pub fn params(&self) -> AstChildren<Param> { support::children(&self.syntax) }
-    pub fn r_paren_token(&self) -> Option<RParen> { support::token(&self.syntax) }
+    pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![')']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct SelfParam {
@@ -2354,9 +2354,9 @@ impl AstNode for ArgList {
     fn syntax(&self) -> &SyntaxNode { &self.syntax }
 }
 impl ArgList {
-    pub fn l_paren_token(&self) -> Option<LParen> { support::token(&self.syntax) }
+    pub fn l_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T!['(']) }
     pub fn args(&self) -> AstChildren<Expr> { support::children(&self.syntax) }
-    pub fn r_paren_token(&self) -> Option<RParen> { support::token(&self.syntax) }
+    pub fn r_paren_token(&self) -> Option<SyntaxToken> { support::token2(&self.syntax, T![')']) }
 }
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
 pub struct Path {
diff --git a/xtask/src/ast_src.rs b/xtask/src/ast_src.rs
index 1483dc08eaa..943c91e236c 100644
--- a/xtask/src/ast_src.rs
+++ b/xtask/src/ast_src.rs
@@ -338,7 +338,7 @@ pub(crate) const AST_SRC: AstSrc = AstSrc {
         struct RecordFieldDefList { T!['{'], fields: [RecordFieldDef], T!['}'] }
         struct RecordFieldDef: VisibilityOwner, NameOwner, AttrsOwner, DocCommentsOwner, TypeAscriptionOwner { }
 
-        struct TupleFieldDefList { LParen, fields: [TupleFieldDef], RParen }
+        struct TupleFieldDefList { T!['('], fields: [TupleFieldDef], T![')'] }
         struct TupleFieldDef: VisibilityOwner, AttrsOwner {
             TypeRef,
         }
@@ -411,13 +411,13 @@ pub(crate) const AST_SRC: AstSrc = AstSrc {
             ItemList,
         }
 
-        struct ParenType { LParen, TypeRef, RParen }
-        struct TupleType { LParen, fields: [TypeRef], RParen }
+        struct ParenType { T!['('], TypeRef, T![')'] }
+        struct TupleType { T!['('], fields: [TypeRef], T![')'] }
         struct NeverType { Excl }
         struct PathType { Path }
         struct PointerType { Star, T![const], T![mut], TypeRef }
-        struct ArrayType { LBrack, TypeRef, T![;], Expr, RBrack }
-        struct SliceType { LBrack, TypeRef, RBrack }
+        struct ArrayType { T!['['], TypeRef, T![;], Expr, T![']'] }
+        struct SliceType { T!['['], TypeRef, T![']'] }
         struct ReferenceType { Amp, Lifetime, T![mut], TypeRef }
         struct PlaceholderType { Underscore }
         struct FnPointerType { Abi, T![unsafe], T![fn], ParamList, RetType }
@@ -425,9 +425,9 @@ pub(crate) const AST_SRC: AstSrc = AstSrc {
         struct ImplTraitType: TypeBoundsOwner { T![impl] }
         struct DynTraitType: TypeBoundsOwner { T![dyn] }
 
-        struct TupleExpr: AttrsOwner { LParen, exprs: [Expr], RParen }
-        struct ArrayExpr: AttrsOwner { LBrack, exprs: [Expr], T![;], RBrack }
-        struct ParenExpr: AttrsOwner { LParen, Expr, RParen }
+        struct TupleExpr: AttrsOwner { T!['('], exprs: [Expr], T![')'] }
+        struct ArrayExpr: AttrsOwner { T!['['], exprs: [Expr], T![;], T![']'] }
+        struct ParenExpr: AttrsOwner { T!['('], Expr, T![')'] }
         struct PathExpr  { Path }
         struct LambdaExpr: AttrsOwner {
             T![static],
@@ -456,7 +456,7 @@ pub(crate) const AST_SRC: AstSrc = AstSrc {
         struct MethodCallExpr: AttrsOwner, ArgListOwner {
             Expr, Dot, NameRef, TypeArgList,
         }
-        struct IndexExpr: AttrsOwner { LBrack, RBrack }
+        struct IndexExpr: AttrsOwner { T!['['], T![']'] }
         struct FieldExpr: AttrsOwner { Expr, Dot, NameRef }
         struct AwaitExpr: AttrsOwner { Expr, Dot, T![await] }
         struct TryExpr: AttrsOwner { T![try], Expr }
@@ -489,14 +489,14 @@ pub(crate) const AST_SRC: AstSrc = AstSrc {
         struct RecordField: AttrsOwner { NameRef, Colon, Expr }
 
         struct OrPat { pats: [Pat] }
-        struct ParenPat { LParen, Pat, RParen }
+        struct ParenPat { T!['('], Pat, T![')'] }
         struct RefPat { Amp, T![mut], Pat }
         struct BoxPat { T![box], Pat }
         struct BindPat: AttrsOwner, NameOwner { T![ref], T![mut], At, Pat }
         struct PlaceholderPat { Underscore }
         struct DotDotPat { Dotdot }
         struct PathPat { Path }
-        struct SlicePat { LBrack, args: [Pat], RBrack }
+        struct SlicePat { T!['['], args: [Pat], T![']'] }
         struct RangePat { RangeSeparator }
         struct LiteralPat { Literal }
         struct MacroPat { MacroCall }
@@ -512,8 +512,8 @@ pub(crate) const AST_SRC: AstSrc = AstSrc {
         }
         struct RecordFieldPat: AttrsOwner, NameOwner { Colon, Pat }
 
-        struct TupleStructPat { Path, LParen, args: [Pat], RParen }
-        struct TuplePat { LParen, args: [Pat], RParen }
+        struct TupleStructPat { Path, T!['('], args: [Pat], T![')'] }
+        struct TuplePat { T!['('], args: [Pat], T![')'] }
 
         struct Visibility { T![pub], T![super], T![self], T![crate] }
         struct Name { Ident }
@@ -522,7 +522,7 @@ pub(crate) const AST_SRC: AstSrc = AstSrc {
         struct MacroCall: NameOwner, AttrsOwner,DocCommentsOwner {
             Path, Excl, TokenTree, T![;]
         }
-        struct Attr { Pound, Excl, LBrack, Path, Eq, input: AttrInput, RBrack }
+        struct Attr { Pound, Excl, T!['['], Path, Eq, input: AttrInput, T![']'] }
         struct TokenTree {}
         struct TypeParamList {
             LAngle,
@@ -562,10 +562,10 @@ pub(crate) const AST_SRC: AstSrc = AstSrc {
             T!['}'],
         }
         struct ParamList {
-            LParen,
+            T!['('],
             SelfParam,
             params: [Param],
-            RParen
+            T![')']
         }
         struct SelfParam: TypeAscriptionOwner, AttrsOwner { Amp, Lifetime, T![self] }
         struct Param: TypeAscriptionOwner, AttrsOwner {
@@ -585,9 +585,9 @@ pub(crate) const AST_SRC: AstSrc = AstSrc {
             T![extern], T![crate], NameRef, Alias,
         }
         struct ArgList {
-            LParen,
+            T!['('],
             args: [Expr],
-            RParen
+            T![')']
         }
         struct Path {
             segment: PathSegment,
diff --git a/xtask/src/codegen/gen_syntax.rs b/xtask/src/codegen/gen_syntax.rs
index b7698ee6e76..a903d1da77e 100644
--- a/xtask/src/codegen/gen_syntax.rs
+++ b/xtask/src/codegen/gen_syntax.rs
@@ -531,6 +531,10 @@ impl Field<'_> {
                     "->" => "thin_arrow",
                     "'{'" => "l_curly",
                     "'}'" => "r_curly",
+                    "'('" => "l_paren",
+                    "')'" => "r_paren",
+                    "'['" => "l_brack",
+                    "']'" => "r_brack",
                     _ => name,
                 };
                 format_ident!("{}_token", name)