diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index ea1efb0f4fa..1ffd244e222 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -1110,7 +1110,7 @@ class Fir2IrDeclarationStorage( } else { fieldStaticOverrideCache[field.name to classId] = this } - val initializer = field.initializer + val initializer = field.unwrapFakeOverrides().initializer if (initializer is FirConstExpression<*>) { this.initializer = factory.createExpressionBody(initializer.toIrConst(type)) } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt index 9c64bfbde1f..577111a17c2 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt @@ -173,7 +173,7 @@ class FakeOverrideGenerator( FirFakeOverrideGenerator.createSubstitutionOverrideField( session, firField, callableSymbol, newReturnType = firField.returnTypeRef.coneType, - firClass.symbol.classId, withInitializer = true + derivedClassId = firClass.symbol.classId ) }, baseStaticFieldSymbols, diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt index f5911fe6224..80e87214fb3 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt @@ -311,7 +311,7 @@ class FirClassSubstitutionScope( val newReturnType = returnType?.substitute() ?: return original return FirFakeOverrideGenerator.createSubstitutionOverrideField( - session, member, original, newReturnType, newOwnerClassId, withInitializer = false + session, member, original, newReturnType, newOwnerClassId ) } diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt index ee4486d86c1..0f39feed08b 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt @@ -487,8 +487,7 @@ object FirFakeOverrideGenerator { baseField: FirField, baseSymbol: FirFieldSymbol, newReturnType: ConeKotlinType?, - derivedClassId: ClassId?, - withInitializer: Boolean + derivedClassId: ClassId? ): FirFieldSymbol { val symbol = FirFieldSymbol( CallableId(derivedClassId ?: baseSymbol.callableId.classId!!, baseField.name) @@ -508,9 +507,6 @@ object FirFakeOverrideGenerator { annotations += baseField.annotations attributes = baseField.attributes.copy() dispatchReceiverType = baseField.dispatchReceiverType - if (withInitializer) { - initializer = baseField.initializer - } }.apply { originalForSubstitutionOverrideAttr = baseField if (isStatic && derivedClassId != null) {