提交 9ae41f5c 编写于 作者: M Mikhail Glukhikh

FIR: store substitution for properties with implicit return type

上级 47687006
......@@ -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
}
\ No newline at end of file
......@@ -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
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册