about summary refs log tree commit diff
path: root/xtask/src/codegen
diff options
context:
space:
mode:
authorAleksey Kladov <aleksey.kladov@gmail.com>2020-04-10 10:11:05 +0200
committerAleksey Kladov <aleksey.kladov@gmail.com>2020-04-10 16:10:28 +0200
commitc8b4c36f8161d34c8145a49965efee4514275989 (patch)
tree3b0a50994d76571cdfb2318f2799e6161962974c /xtask/src/codegen
parentf89f2e38855f5b47f68758e98139aa962cb7a01d (diff)
downloadrust-c8b4c36f8161d34c8145a49965efee4514275989.tar.gz
rust-c8b4c36f8161d34c8145a49965efee4514275989.zip
Semicolon token
Diffstat (limited to 'xtask/src/codegen')
-rw-r--r--xtask/src/codegen/gen_syntax.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/xtask/src/codegen/gen_syntax.rs b/xtask/src/codegen/gen_syntax.rs
index c4fb29bbfa6..26f541da100 100644
--- a/xtask/src/codegen/gen_syntax.rs
+++ b/xtask/src/codegen/gen_syntax.rs
@@ -515,7 +515,7 @@ impl Field<'_> {
     fn token_kind(&self) -> Option<proc_macro2::TokenStream> {
         let res = match self {
             Field::Token(token) => {
-                let token = format_ident!("{}", token);
+                let token: proc_macro2::TokenStream = token.parse().unwrap();
                 quote! { T![#token] }
             }
             _ => return None,
@@ -524,7 +524,13 @@ impl Field<'_> {
     }
     fn method_name(&self) -> proc_macro2::Ident {
         match self {
-            Field::Token(name) => format_ident!("{}_token", name),
+            Field::Token(name) => {
+                let name = match *name {
+                    ";" => "semicolon",
+                    _ => name,
+                };
+                format_ident!("{}_token", name)
+            }
             Field::Node { name, src } => match src {
                 FieldSrc::Shorthand => format_ident!("{}", to_lower_snake_case(name)),
                 _ => format_ident!("{}", name),