eclipse-cyclonedds / cyclonedds-python

Other
54 stars 44 forks source link

Fix fully qualified symbol name outside a module #195

Closed eboasson closed 1 year ago

eboasson commented 1 year ago

The code in absolute_name constructed the correct name, then patched it to get the module prefix for updating the list of referenced modules, then backed out the patch to return the full name.

The patching handled symbols outside any module incorrectly, resulting in weird references of names ending in a single quote by patching the opening quote instead of the (non-existent) separating dot, and names starting with a dot and ending in a single quote because the patch was undone by unconditionally putting a dot in where there had been none.

This makes the entire module prefix and module referencing conditional upon the existence of an enclosing module and furthermore documents/asserts the structure of the generated name.

eboasson commented 1 year ago

Thanks @poetinger for reviewing this! I can't quite see how the test failures could have been caused by this. Even though I feel less comfortable making such a call for the python binding than I do for failures in the cyclonedds repository, I am merging it. Hopefully I'm making the right call ...