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 76d621e2000..cde3008a22b 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 @@ -165,10 +165,7 @@ fun ConeKotlinType.scopeForSupertype( val symbol = lookupTag.toSymbol(useSiteSession) as? FirRegularClassSymbol ?: return null - val substitutor = when { - this.type.attributes.contains(CompilerConeAttributes.RawType) -> ConeRawScopeSubstitutor(useSiteSession) - else -> substitutor(symbol, this, useSiteSession) - } + val substitutor = substitutorForSuperType(useSiteSession, symbol) return symbol.fir.scopeForClassImpl( substitutor, @@ -182,6 +179,13 @@ fun ConeKotlinType.scopeForSupertype( ) } +fun ConeClassLikeType.substitutorForSuperType(useSiteSession: FirSession, classTypeSymbol: FirRegularClassSymbol): ConeSubstitutor { + return when { + this.type.attributes.contains(CompilerConeAttributes.RawType) -> ConeRawScopeSubstitutor(useSiteSession) + else -> substitutor(classTypeSymbol, this, useSiteSession) + } +} + private fun substitutor(symbol: FirRegularClassSymbol, type: ConeClassLikeType, useSiteSession: FirSession): ConeSubstitutor { if (type.typeArguments.isEmpty()) return ConeSubstitutor.Empty val originalSubstitution = createSubstitutionForScope(symbol.fir.typeParameters, type, useSiteSession)