diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/lightMember.kt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/lightMember.kt index e177ee7aa10..df7c19b2c7a 100644 --- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/lightMember.kt +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/lightMember.kt @@ -7,6 +7,6 @@ abstract class LightMemberImpl(computeRealDelegate: () -> D) } abstract class LightFieldImpl(computeRealDelegate: () -> D) : LightMemberImpl(computeRealDelegate) { - override val delegate: D + override val delegate: D get() = super.delegate } \ No newline at end of file diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt index e6e22c6fdff..1be220915d9 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt @@ -121,7 +121,8 @@ class FirClassSubstitutionScope( } if (newReceiverType == null && newReturnType == null && newParameterTypes.all { it == null } && - newTypeParameters === member.typeParameters && fakeOverrideSubstitution == null) { + newTypeParameters === member.typeParameters && fakeOverrideSubstitution == null + ) { return original } @@ -157,6 +158,7 @@ class FirClassSubstitutionScope( if (newReturnType == null && newParameterTypes.all { it == null } && newTypeParameters === constructor.typeParameters) { return original } + return FirFakeOverrideGenerator.createSubstitutionOverrideConstructor( FirConstructorSymbol(original.callableId), session, constructor, dispatchReceiverTypeForSubstitutedMembers, @@ -170,8 +172,9 @@ class FirClassSubstitutionScope( if (skipPrivateMembers && member.visibility == Visibilities.Private) return original val (newTypeParameters, newReceiverType, newReturnType, _, fakeOverrideSubstitution) = createSubstitutedData(member) - if (newReceiverType == null && - newReturnType == null && newTypeParameters === member.typeParameters + + if (newReceiverType == null && newReturnType == null && + newTypeParameters === member.typeParameters && fakeOverrideSubstitution == null ) { return original }