Tweak enum generics error handling
diff --git a/syntax/parse.rs b/syntax/parse.rs
index 8bd8907..acf969d 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -174,16 +174,15 @@
},
);
- let generics = &item.generics;
- if !generics.params.is_empty() || generics.where_clause.is_some() {
+ if !item.generics.params.is_empty() {
+ let vis = &item.vis;
let enum_token = item.enum_token;
let ident = &item.ident;
- let where_clause = &generics.where_clause;
- let span = quote!(#enum_token #ident #generics #where_clause);
- return Err(Error::new_spanned(
- span,
- "enums with generic parameters are not allowed",
- ));
+ let generics = &item.generics;
+ let span = quote!(#vis #enum_token #ident #generics);
+ cx.error(span, "enum with generic parameters is not supported");
+ } else if let Some(where_clause) = &item.generics.where_clause {
+ cx.error(where_clause, "enum with where-clause is not supported");
}
let mut variants = Vec::new();