FIR: unwrap f/overrides when determining mutability of property reference
#KT-44010 Fixed
This commit is contained in:
committed by
Mikhail Glukhikh
parent
0918e73dff
commit
78fa8814c4
+6
@@ -3004,6 +3004,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti
|
||||
runTest("compiler/testData/diagnostics/tests/callableReference/property/memberFromTopLevel.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("propertyFromAbstractSuperClass.kt")
|
||||
public void testPropertyFromAbstractSuperClass() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/callableReference/property/propertyFromAbstractSuperClass.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("protectedVarFromClass.kt")
|
||||
public void testProtectedVarFromClass() throws Exception {
|
||||
|
||||
+4
-2
@@ -401,6 +401,8 @@ private fun createKPropertyType(
|
||||
private fun FirVariable<*>.canBeMutableReference(candidate: Candidate): Boolean {
|
||||
if (!isVar) return false
|
||||
if (this is FirField) return true
|
||||
return source?.kind == FirFakeSourceElementKind.PropertyFromParameter ||
|
||||
(setter is FirMemberDeclaration && candidate.callInfo.session.visibilityChecker.isVisible(setter!!, candidate))
|
||||
val original = this.unwrapFakeOverrides()
|
||||
return original.source?.kind == FirFakeSourceElementKind.PropertyFromParameter ||
|
||||
(original.setter is FirMemberDeclaration &&
|
||||
candidate.callInfo.session.visibilityChecker.isVisible(original.setter!!, candidate))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user