FIR: store substitution for properties with implicit return type
This commit is contained in:
+1
-1
@@ -7,6 +7,6 @@ abstract class LightMemberImpl<out D : PsiMember>(computeRealDelegate: () -> D)
|
||||
}
|
||||
|
||||
abstract class LightFieldImpl<D : PsiField>(computeRealDelegate: () -> D) : LightMemberImpl<PsiField>(computeRealDelegate) {
|
||||
override val delegate: <!PROPERTY_TYPE_MISMATCH_ON_OVERRIDE!>D<!>
|
||||
override val delegate: D
|
||||
get() = super.delegate
|
||||
}
|
||||
+6
-3
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user