The ambiguity detection (scanMembers → compatibleConstructorConflict in DescriptorThunkGen.hpp, static_assert in DescriptorBuilderGen.hpp) has no test. Strict rule (≥2 compatible constructors → compile error, default constructor counts) is verified only by code reading.
Because the error surfaces as a static_assert, it can't sit in the main test TU, and the project has no compile-failure harness. Suggested: a separate series that all compiles, asserting the value of compatibleConstructorConflict directly — false for a lone Bean ctor and for a lone default ctor, true for a default + Bean ctor and for two parameterized compatible ctors.
The ambiguity detection (scanMembers → compatibleConstructorConflict in DescriptorThunkGen.hpp, static_assert in DescriptorBuilderGen.hpp) has no test. Strict rule (≥2 compatible constructors → compile error, default constructor counts) is verified only by code reading.
Because the error surfaces as a static_assert, it can't sit in the main test TU, and the project has no compile-failure harness. Suggested: a separate series that all compiles, asserting the value of compatibleConstructorConflict directly — false for a lone Bean ctor and for a lone default ctor, true for a default + Bean ctor and for two parameterized compatible ctors.