[FIR] Process all overridden members from intersection scopes
Previously, there was a contract that each callable symbol in the chain of `processDirectOverriddenWithBaseScope` will be unique. And if some symbol is accessible from multiple scopes, then only last of them will be returned as a component of `MemberWithScope` But after the change from previous commit, we don't have this contract anymore. Which means that we may meet the same symbol during processing hierarchy of overridden functions (but with different base scopes) So if some code utilizes `process...Overridden...WithBaseScope` functions it should consider that the same symbol may be obtained several times ^KT-63738 Fixed
This commit is contained in:
committed by
Space Team
parent
c34511af37
commit
4272f2e156
Vendored
+8
-3
@@ -1,6 +1,11 @@
|
||||
D:
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract override fun foo(): R|E4| from Use site scope of /D [id: 0]
|
||||
[Source]: public abstract override fun foo(): R|E2| from Use site scope of /B [id: 1]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E2| from Substitution scope for [Use site scope of /A] for type B<E2> [id: 2]
|
||||
[Source]: public abstract fun foo(): R|E1| from Use site scope of /A [id: 3]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract override fun foo(): R|E4| from Substitution scope for [Use site scope of /B] for type D<E4> [id: 0]
|
||||
[Source]: public abstract override fun foo(): R|E2| from Use site scope of /B [id: 1]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E2| from Substitution scope for [Use site scope of /A] for type B<E2> [id: 2]
|
||||
[Source]: public abstract fun foo(): R|E1| from Use site scope of /A [id: 3]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E4| from Substitution scope for [Use site scope of /C] for type D<E4> [id: 4]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E3| from Use site scope of /C [id: 5]
|
||||
[SubstitutionOverride(DeclarationSite)]: public abstract fun foo(): R|E3| from Substitution scope for [Use site scope of /A] for type C<E3> [id: 5]
|
||||
[Source]: public abstract fun foo(): R|E1| from Use site scope of /A [id: 3]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user