New J2K: Fix type parameters for array creation expressions
This commit is contained in:
@@ -19,15 +19,19 @@ class ArrayInitializerConversion(private val context: ConversionContext) : Recur
|
|||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
var newElement = element
|
var newElement = element
|
||||||
if (element is JKJavaNewArray) {
|
if (element is JKJavaNewArray) {
|
||||||
val arrayType = element.type.type as? JKJavaPrimitiveType
|
val primitiveArrayType = element.type.type as? JKJavaPrimitiveType
|
||||||
val arrayConstructorName =
|
val arrayConstructorName =
|
||||||
if (arrayType != null)
|
if (primitiveArrayType != null)
|
||||||
CollectionLiteralResolver.PRIMITIVE_TYPE_TO_ARRAY[PrimitiveType.valueOf(arrayType.jvmPrimitiveType.name)]!!.asString()
|
CollectionLiteralResolver.PRIMITIVE_TYPE_TO_ARRAY[PrimitiveType.valueOf(primitiveArrayType.jvmPrimitiveType.name)]!!.asString()
|
||||||
else
|
else
|
||||||
CollectionLiteralResolver.ARRAY_OF_FUNCTION.asString()
|
CollectionLiteralResolver.ARRAY_OF_FUNCTION.asString()
|
||||||
|
val typeArguments =
|
||||||
|
if (primitiveArrayType == null) JKTypeArgumentListImpl(listOf(element::type.detached()))
|
||||||
|
else JKTypeArgumentListImpl()
|
||||||
newElement = JKJavaMethodCallExpressionImpl(
|
newElement = JKJavaMethodCallExpressionImpl(
|
||||||
context.symbolProvider.provideByFqName("kotlin.$arrayConstructorName"),
|
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) {
|
} else if (element is JKJavaNewEmptyArray) {
|
||||||
newElement = buildArrayInitializer(
|
newElement = buildArrayInitializer(
|
||||||
|
|||||||
Reference in New Issue
Block a user