Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Fix resolve_reposession_conflicts not resolving anything
The code still iterated over $orig.FLATTENABLE_HASH as needed in NQP but which doesn't actually work in Perl 6. It also lacked recursive merging of stashes, i.e. with Foo::Bar::Baz and Foo::Bar::Qux we would lose the first one as we found a "Bar" in $current and assumed it was the same. Both issues can be fixed by using merge-symbols which gives us the same semantics as during compilation, with the exception of our scoped functions. No idea how they could even conflict when they are in different packages like NativeCall's &mangle_cpp_symbol. But as it seems to work and unification of compilation and module loading semantics can only be a good thing, we adopt the "latest wins" semantics of resolve_reposession_conflicts in merge_globals for now.
- Loading branch information