[FIR] Call distinctBy for containsMultipleNonSubsumed
Otherwise, when analyzing `PsiTypeParameterListOwner` in the related test, we (after flattening and `nonSubsumed()`) get 2 `JvmMember.accept` from the same very java enhancement scope `JvmMember`. ^KT-65972
This commit is contained in:
committed by
Space Team
parent
453b97a2d1
commit
01cff6b5e9
@@ -160,6 +160,12 @@ fun MemberWithBaseScope<FirCallableSymbol<*>>.getNonSubsumedOverriddenSymbols():
|
||||
.map { it.member }
|
||||
}
|
||||
|
||||
fun List<MemberWithBaseScope<FirCallableSymbol<*>>>.getNonSubsumedNonPhantomOverriddenSymbols(): List<MemberWithBaseScope<FirCallableSymbol<*>>> {
|
||||
return flatMap { it.flattenPhantomIntersectionsRecursively() }
|
||||
.nonSubsumed()
|
||||
.distinctBy { it.member.unwrapSubstitutionOverrides<FirCallableSymbol<*>>() }
|
||||
}
|
||||
|
||||
fun FirCallableSymbol<*>.dispatchReceiverScope(session: FirSession, scopeSession: ScopeSession): FirTypeScope {
|
||||
val dispatchReceiverType = requireNotNull(dispatchReceiverType)
|
||||
return dispatchReceiverType.scope(
|
||||
|
||||
+2
-2
@@ -180,8 +180,8 @@ class FirTypeIntersectionScopeContext(
|
||||
overriddenMembers = group,
|
||||
containingScope = null,
|
||||
containsMultipleNonSubsumed = when {
|
||||
forClassUseSiteScope -> group.flatMap { it.flattenPhantomIntersectionsRecursively() }.nonSubsumed().size > 1
|
||||
else -> mostSpecific.flatMap { it.flattenPhantomIntersectionsRecursively() }.nonSubsumed().size > 1
|
||||
forClassUseSiteScope -> group.getNonSubsumedNonPhantomOverriddenSymbols().size > 1
|
||||
else -> mostSpecific.getNonSubsumedNonPhantomOverriddenSymbols().size > 1
|
||||
},
|
||||
)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user