From 98d34b40ab6fcf9f6e546a0e5455fd91474f8fa7 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 19 Oct 2021 16:17:47 +0300 Subject: [PATCH] FIR: set substituteTypes value explicitly in calls inside providers --- .../org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt | 4 +++- .../org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt | 2 +- .../kotlin/fir/scopes/FirKotlinScopeProvider.kt | 9 +++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt index ae679710073..53415d1054c 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt @@ -88,7 +88,9 @@ object JavaScopeProvider : FirScopeProvider() { if (regularClass.isThereLoopInSupertypes(useSiteSession)) listOf(StandardClassIds.Any.constructClassLikeType(emptyArray(), isNullable = false)) else - lookupSuperTypes(regularClass, lookupInterfaces = true, deep = false, useSiteSession = useSiteSession) + lookupSuperTypes( + regularClass, lookupInterfaces = true, deep = false, useSiteSession = useSiteSession, substituteTypes = true + ) val superTypeScopes = superTypes.mapNotNull { it.scopeForSupertype(useSiteSession, scopeSession, subClass = regularClass) diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt index f08320f8362..6cebf2cf6fe 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt @@ -49,8 +49,8 @@ fun lookupSuperTypes( lookupInterfaces: Boolean, deep: Boolean, useSiteSession: FirSession, + substituteTypes: Boolean, supertypeSupplier: SupertypeSupplier = SupertypeSupplier.Default, - substituteTypes: Boolean = false ): List { return SmartList().also { klass.symbol.collectSuperTypes(it, SmartSet.create(), deep, lookupInterfaces, substituteTypes, useSiteSession, supertypeSupplier) diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/FirKotlinScopeProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/FirKotlinScopeProvider.kt index 22073e7b95a..627248b2209 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/FirKotlinScopeProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/FirKotlinScopeProvider.kt @@ -51,10 +51,11 @@ class FirKotlinScopeProvider( } - val scopes = lookupSuperTypes(klass, lookupInterfaces = true, deep = false, useSiteSession = useSiteSession) - .mapNotNull { useSiteSuperType -> - useSiteSuperType.scopeForSupertype(useSiteSession, scopeSession, klass) - } + val scopes = lookupSuperTypes( + klass, lookupInterfaces = true, deep = false, useSiteSession = useSiteSession, substituteTypes = true + ).mapNotNull { useSiteSuperType -> + useSiteSuperType.scopeForSupertype(useSiteSession, scopeSession, klass) + } FirClassUseSiteMemberScope( useSiteSession, FirTypeIntersectionScope.prepareIntersectionScope(