Fix expansion and unexpansion of mixin qualified names #15712
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A mixin qualifier foo$A is a qualified name. Previously these
were flattened to SimpleNames when expanding with a trait prefix.
But then ResolveSuper cannot decompose the name anymore.
To fix this, we now treat QualifiedNames specially in the replace
calls for SymDenotations#fullNameSeparated and NameOps#unexpanded.
Qualifiers are preserved and the replacement proceeds recursively
to their underlying part. For some as yet unknown reason we can't
do this for TraitSetterNames. It seems these need to be flattened.
Fixes #15702