[FIR] Reuse enhancement storage during creation of synthetic properies
^KT-61972 Fixed
This commit is contained in:
committed by
Space Team
parent
cec299ac0a
commit
97cf240450
+6
@@ -37685,6 +37685,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr
|
|||||||
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("propertyInUpperCaseWithJava.kt")
|
||||||
|
public void testPropertyInUpperCaseWithJava() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/properties/propertyInUpperCaseWithJava.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("protectedJavaFieldInInline.kt")
|
@TestMetadata("protectedJavaFieldInInline.kt")
|
||||||
public void testProtectedJavaFieldInInline() throws Exception {
|
public void testProtectedJavaFieldInInline() throws Exception {
|
||||||
|
|||||||
+6
@@ -37685,6 +37685,12 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated
|
|||||||
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("propertyInUpperCaseWithJava.kt")
|
||||||
|
public void testPropertyInUpperCaseWithJava() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/properties/propertyInUpperCaseWithJava.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("protectedJavaFieldInInline.kt")
|
@TestMetadata("protectedJavaFieldInInline.kt")
|
||||||
public void testProtectedJavaFieldInInline() throws Exception {
|
public void testProtectedJavaFieldInInline() throws Exception {
|
||||||
|
|||||||
+6
@@ -37685,6 +37685,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
|
|||||||
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("propertyInUpperCaseWithJava.kt")
|
||||||
|
public void testPropertyInUpperCaseWithJava() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/properties/propertyInUpperCaseWithJava.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("protectedJavaFieldInInline.kt")
|
@TestMetadata("protectedJavaFieldInInline.kt")
|
||||||
public void testProtectedJavaFieldInInline() throws Exception {
|
public void testProtectedJavaFieldInInline() throws Exception {
|
||||||
|
|||||||
+2
-6
@@ -157,17 +157,13 @@ class FirSignatureEnhancement(
|
|||||||
val accessorSymbol = firElement.symbol
|
val accessorSymbol = firElement.symbol
|
||||||
val getterDelegate = firElement.getter.delegate
|
val getterDelegate = firElement.getter.delegate
|
||||||
val enhancedGetterSymbol = if (getterDelegate is FirJavaMethod) {
|
val enhancedGetterSymbol = if (getterDelegate is FirJavaMethod) {
|
||||||
enhanceMethod(
|
enhancementsCache.enhancedFunctions.getValue(getterDelegate.symbol, this to getterDelegate.name)
|
||||||
getterDelegate, getterDelegate.symbol.callableId, getterDelegate.name, enhancedTypeParameters = null,
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
getterDelegate.symbol
|
getterDelegate.symbol
|
||||||
}
|
}
|
||||||
val setterDelegate = firElement.setter?.delegate
|
val setterDelegate = firElement.setter?.delegate
|
||||||
val enhancedSetterSymbol = if (setterDelegate is FirJavaMethod) {
|
val enhancedSetterSymbol = if (setterDelegate is FirJavaMethod) {
|
||||||
enhanceMethod(
|
enhancementsCache.enhancedFunctions.getValue(setterDelegate.symbol, this to setterDelegate.name)
|
||||||
setterDelegate, setterDelegate.symbol.callableId, setterDelegate.name, enhancedTypeParameters = null,
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
setterDelegate?.symbol
|
setterDelegate?.symbol
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
// TARGET_BACKEND: JVM_IR
|
||||||
|
// ISSUE: KT-61972
|
||||||
|
|
||||||
|
// FILE: Base.kt
|
||||||
|
interface Base {
|
||||||
|
val URL: String
|
||||||
|
}
|
||||||
|
|
||||||
|
// FILE: Derived.java
|
||||||
|
public class Derived implements Base {
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
public Derived(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@java.lang.Override
|
||||||
|
public String getURL() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FILE: main.kt
|
||||||
|
fun box(): String {
|
||||||
|
val d1 = Derived("O")
|
||||||
|
val d2 = Derived("K")
|
||||||
|
return d1.URL + d2.getURL()
|
||||||
|
}
|
||||||
+6
@@ -37685,6 +37685,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("propertyInUpperCaseWithJava.kt")
|
||||||
|
public void testPropertyInUpperCaseWithJava() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/properties/propertyInUpperCaseWithJava.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("protectedJavaFieldInInline.kt")
|
@TestMetadata("protectedJavaFieldInInline.kt")
|
||||||
public void testProtectedJavaFieldInInline() throws Exception {
|
public void testProtectedJavaFieldInInline() throws Exception {
|
||||||
|
|||||||
+6
@@ -37685,6 +37685,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack
|
|||||||
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("propertyInUpperCaseWithJava.kt")
|
||||||
|
public void testPropertyInUpperCaseWithJava() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/properties/propertyInUpperCaseWithJava.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("protectedJavaFieldInInline.kt")
|
@TestMetadata("protectedJavaFieldInInline.kt")
|
||||||
public void testProtectedJavaFieldInInline() throws Exception {
|
public void testProtectedJavaFieldInInline() throws Exception {
|
||||||
|
|||||||
+5
@@ -32190,6 +32190,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
runTest("compiler/testData/codegen/box/properties/privatePropertyWithoutBackingField.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("propertyInUpperCaseWithJava.kt")
|
||||||
|
public void testPropertyInUpperCaseWithJava() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/properties/propertyInUpperCaseWithJava.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("protectedJavaFieldInInline.kt")
|
@TestMetadata("protectedJavaFieldInInline.kt")
|
||||||
public void testProtectedJavaFieldInInline() throws Exception {
|
public void testProtectedJavaFieldInInline() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/properties/protectedJavaFieldInInline.kt");
|
runTest("compiler/testData/codegen/box/properties/protectedJavaFieldInInline.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user