From c94d583e2e50c80ac3424806fa0b1ae54bf2a5ed Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 16 Jul 2020 18:12:46 +0300 Subject: [PATCH] [FIR] Add substitution for inner classes to supertype resolve KT-38992 Fixed --- .../fir/resolve/transformers/FirSupertypesResolution.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt index b409a9a8225..31daefdd3bb 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.createImportingScopes import org.jetbrains.kotlin.fir.scopes.impl.FirMemberTypeParameterScope import org.jetbrains.kotlin.fir.scopes.impl.nestedClassifierScope +import org.jetbrains.kotlin.fir.scopes.impl.wrapNestedClassifierScopeWithSubstitutionForSuperType import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef @@ -145,10 +146,11 @@ private fun createScopesForNestedClasses( mutableListOf().apply { lookupSuperTypes( klass, - lookupInterfaces = false, deep = true, useSiteSession = session, + lookupInterfaces = false, deep = true, substituteTypes = true, useSiteSession = session, supertypeSupplier = supertypeComputationSession.supertypesSupplier ).asReversed().mapNotNullTo(this) { session.getNestedClassifierScope(it.lookupTag) + ?.wrapNestedClassifierScopeWithSubstitutionForSuperType(it, session) } addIfNotNull(klass.typeParametersScope()) val companionObjects = klass.declarations.filterIsInstance().filter { it.isCompanion }