[FIR2IR] Fix using default values of annotation arguments

This commit is contained in:
Dmitriy Novozhilov
2021-03-05 11:03:02 +03:00
parent ca26c193ae
commit aa829c2321
2 changed files with 7 additions and 5 deletions
@@ -534,16 +534,19 @@ class CallAndReferenceGenerator(
if (annotationMode) {
for ((index, parameter) in valueParameters.withIndex()) {
if (parameter.isVararg && !argumentMapping.containsValue(parameter)) {
val elementType = parameter.returnTypeRef.toIrType()
putValueArgument(
index,
val defaultValue = parameter.defaultValue
val value = if (defaultValue != null) {
convertArgument(defaultValue, parameter, ConeSubstitutor.Empty, annotationMode)
} else {
val elementType = parameter.returnTypeRef.toIrType()
IrVarargImpl(
UNDEFINED_OFFSET,
UNDEFINED_OFFSET,
elementType,
elementType.toArrayOrPrimitiveArrayType(irBuiltIns)
)
)
}
putValueArgument(index, value)
}
}
}
@@ -1,5 +1,4 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND_FIR: JVM_IR
// WITH_RUNTIME
// MODULE: lib
// FILE: JavaAnn.java