New J2K: Add type arguments to multi-dimension array initializers

This commit is contained in:
Ilya Kirillov
2019-03-26 16:42:57 +03:00
committed by Ilya Kirillov
parent 99f3af9e85
commit 76b73542d9
@@ -55,6 +55,9 @@ class ArrayInitializerConversion(private val context: ConversionContext) : Recur
} }
} }
if (dimensions[1] !is JKStubExpression) { if (dimensions[1] !is JKStubExpression) {
val arrayType = dimensions.drop(1).fold(type) { currentType, _ ->
JKJavaArrayTypeImpl(currentType)
}
return JKJavaMethodCallExpressionImpl( return JKJavaMethodCallExpressionImpl(
context.symbolProvider.provideByFqName("kotlin.Array"), context.symbolProvider.provideByFqName("kotlin.Array"),
JKArgumentListImpl( JKArgumentListImpl(
@@ -63,7 +66,8 @@ class ArrayInitializerConversion(private val context: ConversionContext) : Recur
JKExpressionStatementImpl(buildArrayInitializer(dimensions.subList(1, dimensions.size), type)), JKExpressionStatementImpl(buildArrayInitializer(dimensions.subList(1, dimensions.size), type)),
emptyList() emptyList()
) )
) ),
JKTypeArgumentListImpl(listOf(JKTypeElementImpl(arrayType)))
) )
} }
var resultType = JKClassTypeImpl( var resultType = JKClassTypeImpl(