IR: copy annotations when making lateinit fields nullable
This commit is contained in:
+1
@@ -48,6 +48,7 @@ open class LateinitLowering(val context: CommonBackendContext) : FileLoweringPas
|
|||||||
}.apply {
|
}.apply {
|
||||||
parent = originalField.parent
|
parent = originalField.parent
|
||||||
correspondingPropertySymbol = originalField.correspondingPropertySymbol
|
correspondingPropertySymbol = originalField.correspondingPropertySymbol
|
||||||
|
annotations += originalField.annotations
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
// WITH_REFLECT
|
||||||
|
// TARGET_BACKEND: JVM
|
||||||
|
|
||||||
|
@Target(AnnotationTarget.FIELD)
|
||||||
|
annotation class Ann
|
||||||
|
|
||||||
|
class C {
|
||||||
|
@Ann
|
||||||
|
lateinit var x0: String
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
require(C::class.java.getDeclaredField("x0")?.getAnnotation(Ann::class.java) != null)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
+5
@@ -76,6 +76,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
|||||||
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitAccessors.kt");
|
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitAccessors.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("annotationsOnLateinitFields.kt")
|
||||||
|
public void testAnnotationsOnLateinitFields() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitFields.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("annotationsOnNonExistentAccessors.kt")
|
@TestMetadata("annotationsOnNonExistentAccessors.kt")
|
||||||
public void testAnnotationsOnNonExistentAccessors() throws Exception {
|
public void testAnnotationsOnNonExistentAccessors() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/annotations/annotationsOnNonExistentAccessors.kt");
|
runTest("compiler/testData/codegen/box/annotations/annotationsOnNonExistentAccessors.kt");
|
||||||
|
|||||||
+5
@@ -81,6 +81,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitAccessors.kt");
|
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitAccessors.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("annotationsOnLateinitFields.kt")
|
||||||
|
public void testAnnotationsOnLateinitFields() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitFields.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("annotationsOnNonExistentAccessors.kt")
|
@TestMetadata("annotationsOnNonExistentAccessors.kt")
|
||||||
public void testAnnotationsOnNonExistentAccessors() throws Exception {
|
public void testAnnotationsOnNonExistentAccessors() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/annotations/annotationsOnNonExistentAccessors.kt");
|
runTest("compiler/testData/codegen/box/annotations/annotationsOnNonExistentAccessors.kt");
|
||||||
|
|||||||
+5
@@ -76,6 +76,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitAccessors.kt");
|
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitAccessors.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("annotationsOnLateinitFields.kt")
|
||||||
|
public void testAnnotationsOnLateinitFields() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitFields.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("annotationsOnNonExistentAccessors.kt")
|
@TestMetadata("annotationsOnNonExistentAccessors.kt")
|
||||||
public void testAnnotationsOnNonExistentAccessors() throws Exception {
|
public void testAnnotationsOnNonExistentAccessors() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/annotations/annotationsOnNonExistentAccessors.kt");
|
runTest("compiler/testData/codegen/box/annotations/annotationsOnNonExistentAccessors.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user