FIR: set substituteTypes value explicitly in calls inside providers
This commit is contained in:
@@ -88,7 +88,9 @@ object JavaScopeProvider : FirScopeProvider() {
|
|||||||
if (regularClass.isThereLoopInSupertypes(useSiteSession))
|
if (regularClass.isThereLoopInSupertypes(useSiteSession))
|
||||||
listOf(StandardClassIds.Any.constructClassLikeType(emptyArray(), isNullable = false))
|
listOf(StandardClassIds.Any.constructClassLikeType(emptyArray(), isNullable = false))
|
||||||
else
|
else
|
||||||
lookupSuperTypes(regularClass, lookupInterfaces = true, deep = false, useSiteSession = useSiteSession)
|
lookupSuperTypes(
|
||||||
|
regularClass, lookupInterfaces = true, deep = false, useSiteSession = useSiteSession, substituteTypes = true
|
||||||
|
)
|
||||||
|
|
||||||
val superTypeScopes = superTypes.mapNotNull {
|
val superTypeScopes = superTypes.mapNotNull {
|
||||||
it.scopeForSupertype(useSiteSession, scopeSession, subClass = regularClass)
|
it.scopeForSupertype(useSiteSession, scopeSession, subClass = regularClass)
|
||||||
|
|||||||
@@ -49,8 +49,8 @@ fun lookupSuperTypes(
|
|||||||
lookupInterfaces: Boolean,
|
lookupInterfaces: Boolean,
|
||||||
deep: Boolean,
|
deep: Boolean,
|
||||||
useSiteSession: FirSession,
|
useSiteSession: FirSession,
|
||||||
|
substituteTypes: Boolean,
|
||||||
supertypeSupplier: SupertypeSupplier = SupertypeSupplier.Default,
|
supertypeSupplier: SupertypeSupplier = SupertypeSupplier.Default,
|
||||||
substituteTypes: Boolean = false
|
|
||||||
): List<ConeClassLikeType> {
|
): List<ConeClassLikeType> {
|
||||||
return SmartList<ConeClassLikeType>().also {
|
return SmartList<ConeClassLikeType>().also {
|
||||||
klass.symbol.collectSuperTypes(it, SmartSet.create(), deep, lookupInterfaces, substituteTypes, useSiteSession, supertypeSupplier)
|
klass.symbol.collectSuperTypes(it, SmartSet.create(), deep, lookupInterfaces, substituteTypes, useSiteSession, supertypeSupplier)
|
||||||
|
|||||||
+5
-4
@@ -51,10 +51,11 @@ class FirKotlinScopeProvider(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
val scopes = lookupSuperTypes(klass, lookupInterfaces = true, deep = false, useSiteSession = useSiteSession)
|
val scopes = lookupSuperTypes(
|
||||||
.mapNotNull { useSiteSuperType ->
|
klass, lookupInterfaces = true, deep = false, useSiteSession = useSiteSession, substituteTypes = true
|
||||||
useSiteSuperType.scopeForSupertype(useSiteSession, scopeSession, klass)
|
).mapNotNull { useSiteSuperType ->
|
||||||
}
|
useSiteSuperType.scopeForSupertype(useSiteSession, scopeSession, klass)
|
||||||
|
}
|
||||||
FirClassUseSiteMemberScope(
|
FirClassUseSiteMemberScope(
|
||||||
useSiteSession,
|
useSiteSession,
|
||||||
FirTypeIntersectionScope.prepareIntersectionScope(
|
FirTypeIntersectionScope.prepareIntersectionScope(
|
||||||
|
|||||||
Reference in New Issue
Block a user