loci: generate less code and tests for virtual classes
Most uses of type_maps.class_is_inheritance_root are bugs. Generally you
actually want to know if a class is virtual. This is complicated somewhat by
lists also being virtual.
diff --git a/c_gen/c_code_gen.py b/c_gen/c_code_gen.py
index a6868ce..968d939 100644
--- a/c_gen/c_code_gen.py
+++ b/c_gen/c_code_gen.py
@@ -1011,7 +1011,7 @@
****************************************************************/
""")
for cls in of_g.standard_class_order:
- if type_maps.class_is_inheritance_root(cls):
+ if type_maps.class_is_virtual(cls) and not loxi_utils.class_is_list(cls):
continue
out.write("\n/* Unified accessor functions for %s */\n" % cls)
for m_name in of_g.ordered_members[cls]:
@@ -1690,8 +1690,6 @@
****************************************************************/
""")
for cls in of_g.standard_class_order:
-# if type_maps.class_is_inheritance_root(cls):
-# continue
out.write("""
/**
* Delete an object of type %(cls)s_t
@@ -1749,8 +1747,8 @@
out.write("/* DOCUMENTATION ONLY */\n")
for cls in of_g.standard_class_order:
- if type_maps.class_is_inheritance_root(cls):
- pass # Check this
+ if type_maps.class_is_virtual(cls):
+ pass
out.write("""
/**