The Clang parser now reports inheritance relations using fully qualified names. This allows Bindgen to pick up inherited classes in namespaces.
Binding type names are guaranteed not to include ::, by replacing them with underscores.
C++ BgInherit structs now inherit constructors of namespaced types properly.
The names of BgJumptable and BgInherit structs now include any enclosing namespaces of the C++ types (because these structs are all emitted to the top-level C++ namespace).
A consequence of these fixes is that namespaced types can be mapped directly:
classes:
Module::Super: Module::Super
types:
# no longer required, Bindgen always does this now
# Module::Super: { binding_type: Module_Super }
I have also confirmed that this doesn't break qt5.cr (it merely removes a bunch of redundant Binding::s under lib Binding).
Fixes #67. More specifically,
::
, by replacing them with underscores.BgInherit
structs now inherit constructors of namespaced types properly.BgJumptable
andBgInherit
structs now include any enclosing namespaces of the C++ types (because these structs are all emitted to the top-level C++ namespace).A consequence of these fixes is that namespaced types can be mapped directly:
I have also confirmed that this doesn't break qt5.cr (it merely removes a bunch of redundant
Binding::
s underlib Binding
).