Remove Features methods
diff --git a/codegen/src/gen.rs b/codegen/src/gen.rs
index 83ddc4e..a51a800 100644
--- a/codegen/src/gen.rs
+++ b/codegen/src/gen.rs
@@ -355,7 +355,7 @@
types::Type::Group(t) => Some(token_group_visit(&t[..], kind, name)),
types::Type::Syn(t) => {
fn requires_full(features: &types::Features) -> bool {
- features.contains("full") && features.len() == 1
+ features.any.contains("full") && features.any.len() == 1
}
let mut res = simple_visit(t, kind, name);
@@ -380,17 +380,11 @@
}
fn visit_features(features: &types::Features) -> TokenStream {
+ let features = &features.any;
match features.len() {
0 => quote!(),
- 1 => {
- let feature = &features[0];
- quote!(#[cfg(feature = #feature)])
- }
- _ => {
- let features = features.iter().map(|feature| quote!(feature = #feature));
-
- quote!(#[cfg(any( #(#features),* ))])
- }
+ 1 => quote!(#[cfg(feature = #(#features)*)]),
+ _ => quote!(#[cfg(any(#(feature = #features),*))]),
}
}