From f0b7f1e30ba63da25c6b8b7483673707cbcf8e3f Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 8 Apr 2019 18:56:53 +0300 Subject: [PATCH] New J2K: Fix type parameters for array creation expressions --- .../nj2k/conversions/ArrayInitializerConversion.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt index 5a536008c62..26fa5646f85 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ArrayInitializerConversion.kt @@ -19,15 +19,19 @@ class ArrayInitializerConversion(private val context: ConversionContext) : Recur override fun applyToElement(element: JKTreeElement): JKTreeElement { var newElement = element if (element is JKJavaNewArray) { - val arrayType = element.type.type as? JKJavaPrimitiveType + val primitiveArrayType = element.type.type as? JKJavaPrimitiveType val arrayConstructorName = - if (arrayType != null) - CollectionLiteralResolver.PRIMITIVE_TYPE_TO_ARRAY[PrimitiveType.valueOf(arrayType.jvmPrimitiveType.name)]!!.asString() + if (primitiveArrayType != null) + CollectionLiteralResolver.PRIMITIVE_TYPE_TO_ARRAY[PrimitiveType.valueOf(primitiveArrayType.jvmPrimitiveType.name)]!!.asString() else CollectionLiteralResolver.ARRAY_OF_FUNCTION.asString() + val typeArguments = + if (primitiveArrayType == null) JKTypeArgumentListImpl(listOf(element::type.detached())) + else JKTypeArgumentListImpl() newElement = JKJavaMethodCallExpressionImpl( context.symbolProvider.provideByFqName("kotlin.$arrayConstructorName"), - element.initializer.also { element.initializer = emptyList() }.toArgumentList() + element.initializer.also { element.initializer = emptyList() }.toArgumentList(), + typeArguments ) } else if (element is JKJavaNewEmptyArray) { newElement = buildArrayInitializer(