Let #[pyclass] reject empty enums.

This commit is contained in:
b05902132 2021-11-23 00:58:33 +08:00
parent b7419b5278
commit d339cd0dc9
3 changed files with 12 additions and 0 deletions

View File

@ -386,6 +386,9 @@ pub fn build_py_enum(
args: PyClassArgs,
method_type: PyClassMethodsType,
) -> syn::Result<TokenStream> {
if enum_.variants.is_empty() {
bail_spanned!(enum_.brace_token.span => "Empty enums can't be #[pyclass].");
}
let variants: Vec<PyClassEnumVariant> = enum_
.variants
.iter()

View File

@ -12,4 +12,7 @@ enum NotDrivedClass {
y,
}
#[pyclass]
enum NoEmptyEnum {}
fn main() {}

View File

@ -9,3 +9,9 @@ error: enums cannot extend from other classes
|
9 | #[pyclass(extends = PyList)]
| ^^^^^^^
error: Empty enums can't be #[pyclass].
--> tests/ui/invalid_pyclass_enum.rs:16:18
|
16 | enum NoEmptyEnum {}
| ^^