[FIR2IR] Fix using default values of annotation arguments
This commit is contained in:
+7
-4
@@ -534,16 +534,19 @@ class CallAndReferenceGenerator(
|
|||||||
if (annotationMode) {
|
if (annotationMode) {
|
||||||
for ((index, parameter) in valueParameters.withIndex()) {
|
for ((index, parameter) in valueParameters.withIndex()) {
|
||||||
if (parameter.isVararg && !argumentMapping.containsValue(parameter)) {
|
if (parameter.isVararg && !argumentMapping.containsValue(parameter)) {
|
||||||
val elementType = parameter.returnTypeRef.toIrType()
|
val defaultValue = parameter.defaultValue
|
||||||
putValueArgument(
|
val value = if (defaultValue != null) {
|
||||||
index,
|
convertArgument(defaultValue, parameter, ConeSubstitutor.Empty, annotationMode)
|
||||||
|
} else {
|
||||||
|
val elementType = parameter.returnTypeRef.toIrType()
|
||||||
IrVarargImpl(
|
IrVarargImpl(
|
||||||
UNDEFINED_OFFSET,
|
UNDEFINED_OFFSET,
|
||||||
UNDEFINED_OFFSET,
|
UNDEFINED_OFFSET,
|
||||||
elementType,
|
elementType,
|
||||||
elementType.toArrayOrPrimitiveArrayType(irBuiltIns)
|
elementType.toArrayOrPrimitiveArrayType(irBuiltIns)
|
||||||
)
|
)
|
||||||
)
|
}
|
||||||
|
putValueArgument(index, value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
// FILE: JavaAnn.java
|
// FILE: JavaAnn.java
|
||||||
|
|||||||
Reference in New Issue
Block a user