Reclasify Ident and Span as being from proc_macro2
diff --git a/codegen/src/gen.rs b/codegen/src/gen.rs
index 4d18776..f852308 100644
--- a/codegen/src/gen.rs
+++ b/codegen/src/gen.rs
@@ -374,6 +374,9 @@
},
)
}
+ types::Type::Ext(t) if super::TERMINAL_TYPES.contains(&&t[..]) => {
+ Some(simple_visit(t, kind, name))
+ }
types::Type::Ext(_) | types::Type::Std(_) => None,
}
}
@@ -633,10 +636,23 @@
.unwrap();
}
+const TERMINAL_TYPES: &[&str] = &["Span", "Ident"];
+
pub fn generate(defs: &types::Definitions) {
+ let mut defs = defs.clone();
+
+ for &tt in TERMINAL_TYPES {
+ defs.insert(types::Node::Struct(types::Struct::new(
+ tt.to_string(),
+ types::Features::default(),
+ vec![],
+ true)
+ ));
+ }
+
let mut state = codegen::State::default();
for s in &defs.types {
- codegen::generate(&mut state, s, defs);
+ codegen::generate(&mut state, s, &defs);
}
let full_macro = quote! {