FIR: create constructors copies with correct containers in JvmMappedScope

#KT-49133 Fixed
This commit is contained in:
Mikhail Glukhikh
2021-10-19 16:10:10 +03:00
committed by TeamCityServer
parent a2b9c2bd78
commit 7b9ac4c5f7
5 changed files with 42 additions and 10 deletions
@@ -189,10 +189,11 @@ class FirClassSubstitutionScope(
return original
}
return FirFakeOverrideGenerator.createSubstitutionOverrideConstructor(
return FirFakeOverrideGenerator.createCopyForFirConstructor(
FirConstructorSymbol(original.callableId),
session,
constructor,
FirDeclarationOrigin.SubstitutionOverride,
newDispatchReceiverType,
newReturnType,
newParameterTypes,
@@ -118,10 +118,11 @@ object FirFakeOverrideGenerator {
}
}
fun createSubstitutionOverrideConstructor(
fun createCopyForFirConstructor(
fakeOverrideSymbol: FirConstructorSymbol,
session: FirSession,
baseConstructor: FirConstructor,
origin: FirDeclarationOrigin,
newDispatchReceiverType: ConeKotlinType?,
newReturnType: ConeKotlinType?,
newParameterTypes: List<ConeKotlinType?>?,
@@ -133,7 +134,7 @@ object FirFakeOverrideGenerator {
// As second alternative, we can invent some light-weight kind of FirRegularClass
return buildConstructor {
moduleData = session.moduleData
origin = FirDeclarationOrigin.SubstitutionOverride
this.origin = origin
receiverTypeRef = baseConstructor.receiverTypeRef?.withReplacedConeType(null)
status = baseConstructor.status.copy(isExpect)
symbol = fakeOverrideSymbol