JVM IR: Don't create $annotations stubs for fake overridden properties
This commit is contained in:
committed by
Alexander Udalov
parent
3eed0609b2
commit
2b6a0d6c58
+1
-1
@@ -55,7 +55,7 @@ class JvmPropertiesLowering(private val context: JvmBackendContext) : IrElementT
|
|||||||
addIfNotNull(declaration.getter)
|
addIfNotNull(declaration.getter)
|
||||||
addIfNotNull(declaration.setter)
|
addIfNotNull(declaration.setter)
|
||||||
|
|
||||||
if (declaration.annotations.isNotEmpty()) {
|
if (!declaration.isFakeOverride && declaration.annotations.isNotEmpty()) {
|
||||||
add(createSyntheticMethodForAnnotations(declaration))
|
add(createSyntheticMethodForAnnotations(declaration))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
annotation class Ann
|
||||||
|
|
||||||
|
abstract class Base {
|
||||||
|
@Ann val x: Int = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
class Derived : Base()
|
||||||
|
|
||||||
|
// We only want to generate the `getX$annotations` method in `Base`, not in `Derived`.
|
||||||
|
// 1 @LAnn;\(\)
|
||||||
@@ -119,6 +119,11 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest {
|
|||||||
runTest("compiler/testData/codegen/bytecodeText/flagsInMultiFileInherit.kt");
|
runTest("compiler/testData/codegen/bytecodeText/flagsInMultiFileInherit.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("inheritedPropertyAnnotations.kt")
|
||||||
|
public void testInheritedPropertyAnnotations() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/bytecodeText/inheritedPropertyAnnotations.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("inlineFromOtherModule.kt")
|
@TestMetadata("inlineFromOtherModule.kt")
|
||||||
public void testInlineFromOtherModule() throws Exception {
|
public void testInlineFromOtherModule() throws Exception {
|
||||||
runTest("compiler/testData/codegen/bytecodeText/inlineFromOtherModule.kt");
|
runTest("compiler/testData/codegen/bytecodeText/inlineFromOtherModule.kt");
|
||||||
|
|||||||
+5
@@ -119,6 +119,11 @@ public class IrBytecodeTextTestGenerated extends AbstractIrBytecodeTextTest {
|
|||||||
runTest("compiler/testData/codegen/bytecodeText/flagsInMultiFileInherit.kt");
|
runTest("compiler/testData/codegen/bytecodeText/flagsInMultiFileInherit.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("inheritedPropertyAnnotations.kt")
|
||||||
|
public void testInheritedPropertyAnnotations() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/bytecodeText/inheritedPropertyAnnotations.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("inlineFromOtherModule.kt")
|
@TestMetadata("inlineFromOtherModule.kt")
|
||||||
public void testInlineFromOtherModule() throws Exception {
|
public void testInlineFromOtherModule() throws Exception {
|
||||||
runTest("compiler/testData/codegen/bytecodeText/inlineFromOtherModule.kt");
|
runTest("compiler/testData/codegen/bytecodeText/inlineFromOtherModule.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user