diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index 61fdd57cb6b..c59feb29c11 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -756,6 +756,19 @@ class Fir2IrVisitor( } } + override fun visitArrayOfCall(arrayOfCall: FirArrayOfCall, data: Any?): IrElement { + return arrayOfCall.convertWithOffsets { startOffset, endOffset -> + IrVarargImpl( + startOffset, endOffset, + type = arrayOfCall.arguments.firstOrNull()?.typeRef?.toIrType() ?: createErrorType(), + varargElementType = arrayOfCall.typeRef.toIrType(), + elements = arrayOfCall.arguments.map { + convertToIrExpression(it) + } + ) + } + } + override fun visitAugmentedArraySetCall(augmentedArraySetCall: FirAugmentedArraySetCall, data: Any?): IrElement { return augmentedArraySetCall.convertWithOffsets { startOffset, endOffset -> IrErrorCallExpressionImpl( diff --git a/compiler/testData/codegen/box/collectionLiterals/collectionLiteralsWithVarargs.kt b/compiler/testData/codegen/box/collectionLiterals/collectionLiteralsWithVarargs.kt index 7797167c2ab..9346e62dd04 100644 --- a/compiler/testData/codegen/box/collectionLiterals/collectionLiteralsWithVarargs.kt +++ b/compiler/testData/codegen/box/collectionLiterals/collectionLiteralsWithVarargs.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_REFLECT // TARGET_BACKEND: JVM diff --git a/compiler/testData/codegen/box/collectionLiterals/defaultAnnotationParameterValues.kt b/compiler/testData/codegen/box/collectionLiterals/defaultAnnotationParameterValues.kt index 9f1917f0b9a..f361eb970c7 100644 --- a/compiler/testData/codegen/box/collectionLiterals/defaultAnnotationParameterValues.kt +++ b/compiler/testData/codegen/box/collectionLiterals/defaultAnnotationParameterValues.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND_FIR: JVM_IR // WITH_REFLECT // TARGET_BACKEND: JVM diff --git a/compiler/testData/ir/irText/declarations/annotations/annotationsInAnnotationArguments.fir.txt b/compiler/testData/ir/irText/declarations/annotations/annotationsInAnnotationArguments.fir.txt index 24d005c8ec0..1069d93a2d4 100644 --- a/compiler/testData/ir/irText/declarations/annotations/annotationsInAnnotationArguments.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/annotationsInAnnotationArguments.fir.txt @@ -84,4 +84,7 @@ FILE fqName: fileName:/annotationsInAnnotationArguments.kt public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit + annotations: + A2(a = A1(x = '42')) + AA(xs = [A1(x = '1'), A1(x = '2')]) BLOCK_BODY diff --git a/compiler/testData/ir/irText/declarations/annotations/arrayInAnnotationArguments.fir.txt b/compiler/testData/ir/irText/declarations/annotations/arrayInAnnotationArguments.fir.txt index e96ce0b2609..ddf5ef01dc2 100644 --- a/compiler/testData/ir/irText/declarations/annotations/arrayInAnnotationArguments.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/arrayInAnnotationArguments.fir.txt @@ -56,6 +56,12 @@ FILE fqName: fileName:/arrayInAnnotationArguments.kt public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Unit + annotations: + TestAnnWithIntArray(x = CALL 'public final fun intArrayOf (vararg elements: kotlin.Int): kotlin.IntArray declared in kotlin' type=kotlin.IntArray origin=null) + TestAnnWithStringArray(x = CALL 'public final fun arrayOf (vararg elements: T of kotlin.arrayOf): kotlin.Array [inline] declared in kotlin' type=kotlin.Array origin=null) BLOCK_BODY FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Unit + annotations: + TestAnnWithIntArray(x = ['4', '5', '6']) + TestAnnWithStringArray(x = ['d', 'e', 'f']) BLOCK_BODY