New J2K: Fix type arguments for new expression

This commit is contained in:
Ilya Kirillov
2018-12-24 12:34:22 +03:00
committed by Ilya Kirillov
parent de26e2cfe7
commit 2d37a2b28e
@@ -23,11 +23,9 @@ import com.intellij.psi.impl.source.tree.ChildRole
import com.intellij.psi.impl.source.tree.java.* import com.intellij.psi.impl.source.tree.java.*
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.asJava.elements.KtLightMethod
import org.jetbrains.kotlin.j2k.ast.* import org.jetbrains.kotlin.j2k.ast.Nullability
import org.jetbrains.kotlin.j2k.ast.LiteralExpression.NullLiteral.isNullable
import org.jetbrains.kotlin.j2k.tree.* import org.jetbrains.kotlin.j2k.tree.*
import org.jetbrains.kotlin.j2k.tree.JKLiteralExpression.LiteralType.* 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.j2k.tree.impl.*
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
@@ -313,11 +311,18 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) {
classOrAnonymousClassReference?.resolve()?.let { classOrAnonymousClassReference?.resolve()?.let {
symbolProvider.provideDirectSymbol(it) as JKClassSymbol symbolProvider.provideDirectSymbol(it) as JKClassSymbol
} ?: JKUnresolvedClassSymbol(classOrAnonymousClassReference!!.text) } ?: 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( JKJavaNewExpressionImpl(
classSymbol, classSymbol,
argumentList.toJK(), argumentList.toJK(),
typeArgumentList.toJK(), typeArgumentList,
with(declarationMapper) { anonymousClass?.createClassBody() } ?: JKEmptyClassBodyImpl() with(declarationMapper) { anonymousClass?.createClassBody() } ?: JKEmptyClassBodyImpl()
) )
} }