[Fir2IR] Fix fake override generation for lazy accessors
^KT-65595 Fixed
This commit is contained in:
committed by
Space Team
parent
d121b529b5
commit
b4062c8974
+6
@@ -19376,6 +19376,12 @@ public class LLFirBlackBoxCodegenBasedTestGenerated extends AbstractLLFirBlackBo
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt65695.kt")
|
||||
public void testKt65695() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65695.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("methodOfAnyFromInterface.kt")
|
||||
public void testMethodOfAnyFromInterface() throws Exception {
|
||||
|
||||
+6
@@ -19376,6 +19376,12 @@ public class LLFirReversedBlackBoxCodegenBasedTestGenerated extends AbstractLLFi
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt65695.kt")
|
||||
public void testKt65695() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65695.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("methodOfAnyFromInterface.kt")
|
||||
public void testMethodOfAnyFromInterface() throws Exception {
|
||||
|
||||
+1
-1
@@ -347,7 +347,7 @@ internal class ClassMemberGenerator(
|
||||
declarationStorage.leaveScope(this.symbol)
|
||||
}
|
||||
}
|
||||
if (containingClass != null) {
|
||||
if (containingClass != null && !components.configuration.useIrFakeOverrideBuilder) {
|
||||
this.overriddenSymbols = property.generateOverriddenAccessorSymbols(containingClass, isGetter)
|
||||
}
|
||||
|
||||
|
||||
+6
@@ -19365,6 +19365,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt65695.kt")
|
||||
public void testKt65695() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65695.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("methodOfAnyFromInterface.kt")
|
||||
public void testMethodOfAnyFromInterface() throws Exception {
|
||||
|
||||
+6
@@ -19365,6 +19365,12 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt65695.kt")
|
||||
public void testKt65695() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65695.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("methodOfAnyFromInterface.kt")
|
||||
public void testMethodOfAnyFromInterface() throws Exception {
|
||||
|
||||
+6
@@ -19365,6 +19365,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt65695.kt")
|
||||
public void testKt65695() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65695.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("methodOfAnyFromInterface.kt")
|
||||
public void testMethodOfAnyFromInterface() throws Exception {
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
|
||||
// FILE: A.kt
|
||||
interface A {
|
||||
val x: String
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
interface B : A
|
||||
|
||||
// FILE: C.java
|
||||
public interface C extends B { }
|
||||
|
||||
// FILE: D.kt
|
||||
class D : C {
|
||||
override val x: String
|
||||
get() = "OK"
|
||||
}
|
||||
|
||||
// FILE: box.kt
|
||||
fun go(p: C): String = p.x
|
||||
|
||||
fun box(): String = go(D())
|
||||
+6
@@ -19365,6 +19365,12 @@ public class JvmAbiConsistencyTestBoxGenerated extends AbstractJvmAbiConsistency
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt65695.kt")
|
||||
public void testKt65695() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65695.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("methodOfAnyFromInterface.kt")
|
||||
public void testMethodOfAnyFromInterface() throws Exception {
|
||||
|
||||
+6
@@ -18507,6 +18507,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt65695.kt")
|
||||
public void testKt65695() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65695.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("methodOfAnyFromInterface.kt")
|
||||
public void testMethodOfAnyFromInterface() throws Exception {
|
||||
|
||||
+6
@@ -19365,6 +19365,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt65695.kt")
|
||||
public void testKt65695() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65695.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("methodOfAnyFromInterface.kt")
|
||||
public void testMethodOfAnyFromInterface() throws Exception {
|
||||
|
||||
+6
@@ -19365,6 +19365,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kt65695.kt")
|
||||
public void testKt65695() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65695.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("methodOfAnyFromInterface.kt")
|
||||
public void testMethodOfAnyFromInterface() throws Exception {
|
||||
|
||||
+5
@@ -16134,6 +16134,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt65695.kt")
|
||||
public void testKt65695() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/kt65695.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("methodOfAnyFromInterface.kt")
|
||||
public void testMethodOfAnyFromInterface() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/fakeOverride/methodOfAnyFromInterface.kt");
|
||||
|
||||
Reference in New Issue
Block a user