diff --git a/clif/pybind11/enums.py b/clif/pybind11/enums.py index f043e2c..6c6972c 100644 --- a/clif/pybind11/enums.py +++ b/clif/pybind11/enums.py @@ -21,9 +21,10 @@ def generate_from(class_name: str, enum_decl: ast_pb2.EnumDecl): """Generates enums.""" + kind = 'Enum' if enum_decl.enum_class else 'IntEnum' yield I + ( f'{class_name} += py::native_enum<{enum_decl.name.cpp_name}>' - f'("{enum_decl.name.native}")' + f'("{enum_decl.name.native}", py::native_enum_kind::{kind})' ) for i, member in enumerate(enum_decl.members): s = I + I + f'.value("{member.native}", {member.cpp_name})' diff --git a/clif/testing/python/t3_test.py b/clif/testing/python/t3_test.py index d2eaefe..522000e 100644 --- a/clif/testing/python/t3_test.py +++ b/clif/testing/python/t3_test.py @@ -60,10 +60,7 @@ def testEnumBases(self): # works). self.assertIsNotNone(enum_module) self.assertEqual(old_bases, (enum_module.IntEnum,)) - if t3.__pyclif_codegen_mode__ == 'pybind11': - self.assertEqual(new_bases, (enum_module.IntEnum,)) # b/335494591 - else: - self.assertEqual(new_bases, (enum_module.Enum,)) + self.assertEqual(new_bases, (enum_module.Enum,)) def testEnumsExportedToParentScope(self): self.assertEqual(t3.Outer.A, t3.Outer.Inner.A)