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 {
|
||||
parent = originalField.parent
|
||||
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");
|
||||
}
|
||||
|
||||
@TestMetadata("annotationsOnLateinitFields.kt")
|
||||
public void testAnnotationsOnLateinitFields() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitFields.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("annotationsOnNonExistentAccessors.kt")
|
||||
public void testAnnotationsOnNonExistentAccessors() throws Exception {
|
||||
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");
|
||||
}
|
||||
|
||||
@TestMetadata("annotationsOnLateinitFields.kt")
|
||||
public void testAnnotationsOnLateinitFields() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitFields.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("annotationsOnNonExistentAccessors.kt")
|
||||
public void testAnnotationsOnNonExistentAccessors() throws Exception {
|
||||
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");
|
||||
}
|
||||
|
||||
@TestMetadata("annotationsOnLateinitFields.kt")
|
||||
public void testAnnotationsOnLateinitFields() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationsOnLateinitFields.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("annotationsOnNonExistentAccessors.kt")
|
||||
public void testAnnotationsOnNonExistentAccessors() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/annotations/annotationsOnNonExistentAccessors.kt");
|
||||
|
||||
Reference in New Issue
Block a user