[FIR] Don't create synthetic property if getter and property came from the same class
Usually we create synthetic property in java class if there is a property
from the base kotlin class and getter/setter with a corresponding name
in the declared scope or one of supertype scopes. But there is a case,
where the same supertype contains both property and getter:
```
// FILE: Base.kt
open class Base {
open val b = "O"
@JvmName("getBJava")
fun getB() : String = "K"
}
// FILE: Derived.java
public class Derived extends Base {}
```
In this case we shouldn't create synthetic property, because `getB()`
function is invisible for `Derived` class
^KT-66020 Fixed
This commit is contained in:
committed by
Space Team
parent
513f86f8fc
commit
6a94a3331f
+5
@@ -30217,6 +30217,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
runTest("compiler/testData/codegen/box/jvmName/classMembers.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("conflictingGetterAndPropertyInBaseKotlinClass.kt")
|
||||
public void testConflictingGetterAndPropertyInBaseKotlinClass() {
|
||||
runTest("compiler/testData/codegen/box/jvmName/conflictingGetterAndPropertyInBaseKotlinClass.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("fakeJvmNameInJava.kt")
|
||||
public void testFakeJvmNameInJava() {
|
||||
runTest("compiler/testData/codegen/box/jvmName/fakeJvmNameInJava.kt");
|
||||
|
||||
Reference in New Issue
Block a user