diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt index e2ba71fbfbb..e3ab22da417 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/JavaToJKTreeBuilder.kt @@ -161,8 +161,17 @@ class JavaToJKTreeBuilder(var symbolProvider: JKSymbolProvider) { return JKJavaNewEmptyArrayImpl(dimensions.map { it?.toJK() }) } } + val constructedClass = classOrAnonymousClassReference?.resolve() + val constructor = constructorFakeReference.resolve() + if (constructor == null && constructedClass != null) { + return JKJavaDefaultNewExpressionImpl( + symbolProvider.provideSymbol(constructedClass) as JKClassSymbol + + ) + } + return JKJavaNewExpressionImpl( - symbolProvider.provideSymbol(constructorFakeReference.resolve()!!) as JKMethodSymbol, + symbolProvider.provideSymbol(constructor!!) as JKMethodSymbol, argumentList.toJK() ) } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt index 38b782ed215..6e87bd81b3c 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/impl/j.kt @@ -101,6 +101,10 @@ class JKJavaNewExpressionImpl( override var arguments by child(arguments) } +class JKJavaDefaultNewExpressionImpl( + override val classSymbol: JKClassSymbol +) : JKJavaDefaultNewExpression, JKElementBase() + class JKJavaNewEmptyArrayImpl(override var initializer: List) : JKJavaNewEmptyArray, JKElementBase() { override fun accept(visitor: JKVisitor, data: D): R = visitor.visitJavaNewEmptyArray(this, data) } diff --git a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/j.kt b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/j.kt index 782d66a67e2..53c4c23d309 100644 --- a/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/j.kt +++ b/j2k/newSrc/org/jetbrains/kotlin/j2k/tree/j.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.j2k.tree +import org.jetbrains.kotlin.j2k.tree.impl.JKClassSymbol import org.jetbrains.kotlin.j2k.tree.impl.JKMethodSymbol interface JKJavaField : JKField, JKBranchElement @@ -38,6 +39,10 @@ interface JKJavaNewExpression : JKExpression { val arguments: JKExpressionList } +interface JKJavaDefaultNewExpression : JKExpression { + val classSymbol: JKClassSymbol +} + interface JKJavaAccessModifier : JKAccessModifier { val type: AccessModifierType