From 2d37a2b28e0ed1adc8189ee803c012ec49440d1b Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 24 Dec 2018 12:34:22 +0300 Subject: [PATCH] New J2K: Fix type arguments for new expression --- .../jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt index 947d342c285..ca748529833 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt @@ -23,11 +23,9 @@ import com.intellij.psi.impl.source.tree.ChildRole import com.intellij.psi.impl.source.tree.java.* import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade import org.jetbrains.kotlin.asJava.elements.KtLightMethod -import org.jetbrains.kotlin.j2k.ast.* -import org.jetbrains.kotlin.j2k.ast.LiteralExpression.NullLiteral.isNullable +import org.jetbrains.kotlin.j2k.ast.Nullability import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.* -import org.jetbrains.kotlin.j2k.tree.Mutability import org.jetbrains.kotlin.j2k.tree.impl.* import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType @@ -313,11 +311,18 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) { classOrAnonymousClassReference?.resolve()?.let { symbolProvider.provideDirectSymbol(it) as JKClassSymbol } ?: JKUnresolvedClassSymbol(classOrAnonymousClassReference!!.text) - + val typeArgumentList = + this.typeArgumentList.toJK() + .takeIf { it.typeArguments.isNotEmpty() } + ?: classOrAnonymousClassReference + ?.typeParameters + ?.let { typeParameters -> + JKTypeArgumentListImpl(typeParameters.map { JKTypeElementImpl(it.toJK(symbolProvider)) }) + } ?: JKTypeArgumentListImpl() JKJavaNewExpressionImpl( classSymbol, argumentList.toJK(), - typeArgumentList.toJK(), + typeArgumentList, with(declarationMapper) { anonymousClass?.createClassBody() } ?: JKEmptyClassBodyImpl() ) }