diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/JavaToJKTreeBuilder.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/JavaToJKTreeBuilder.kt index 3ce3cb9f68d..f134fbaf991 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/JavaToJKTreeBuilder.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/JavaToJKTreeBuilder.kt @@ -335,7 +335,13 @@ class JavaToJKTreeBuilder constructor( } } - else -> TODO() + else -> { + JKJavaMethodCallExpressionImpl( + JKMultiverseMethodSymbol(target, symbolProvider), + arguments.toJK(), + typeArguments + ).qualified(qualifier) + } } } diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/tree/impl/symbols.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/tree/impl/symbols.kt index 7324122a9ec..30cb43ede06 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/tree/impl/symbols.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/tree/impl/symbols.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.nj2k.tree.impl import com.intellij.psi.* import com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl +import org.jetbrains.kotlin.asJava.elements.KtLightMethod import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.idea.refactoring.fqName.getKotlinFqName import org.jetbrains.kotlin.idea.search.declarationsSearch.findDeepestSuperMethodsNoWrapping @@ -172,7 +173,10 @@ class JKMultiverseMethodSymbol(override val target: PsiMethod, private val symbo override val declaredIn: JKSymbol? get() = target.containingClass?.let { symbolProvider.provideDirectSymbol(it) } override val fqName: String - get() = target.getKotlinFqName()?.asString() ?: target.name + get() { + val kotlinFqName = target.getKotlinFqName()?.asString() ?: return name + return if (target is KtLightMethod) "$kotlinFqName.$name" else kotlinFqName + } } class JKMultiverseFunctionSymbol(override val target: KtFunction, private val symbolProvider: JKSymbolProvider) : JKMethodSymbol { diff --git a/nj2k/testData/copyPastePlainText/KT32604.expected.kt b/nj2k/testData/copyPastePlainText/KT32604.expected.kt new file mode 100644 index 00000000000..708d4931d13 --- /dev/null +++ b/nj2k/testData/copyPastePlainText/KT32604.expected.kt @@ -0,0 +1,9 @@ +data class Person(val name: String, val surname: String) + +object Foo { + @JvmStatic + fun main(args: Array) { + val person = Person("M", "S") + println(person.toString()) + } +} \ No newline at end of file diff --git a/nj2k/testData/copyPastePlainText/KT32604.to.kt b/nj2k/testData/copyPastePlainText/KT32604.to.kt new file mode 100644 index 00000000000..b46d8b0527e --- /dev/null +++ b/nj2k/testData/copyPastePlainText/KT32604.to.kt @@ -0,0 +1,3 @@ +data class Person(val name: String, val surname: String) + + \ No newline at end of file diff --git a/nj2k/testData/copyPastePlainText/KT32604.txt b/nj2k/testData/copyPastePlainText/KT32604.txt new file mode 100644 index 00000000000..9e11485487d --- /dev/null +++ b/nj2k/testData/copyPastePlainText/KT32604.txt @@ -0,0 +1,6 @@ +public class Foo { + public static void main(String[] args) { + Person person = new Person("M", "S"); + System.out.println(person.toString()); + } +} \ No newline at end of file diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/TextNewJavaToKotlinCopyPasteConversionTestGenerated.java b/nj2k/tests/org/jetbrains/kotlin/nj2k/TextNewJavaToKotlinCopyPasteConversionTestGenerated.java index a9c6ab97dde..a053a390c6f 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/TextNewJavaToKotlinCopyPasteConversionTestGenerated.java +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/TextNewJavaToKotlinCopyPasteConversionTestGenerated.java @@ -84,6 +84,11 @@ public class TextNewJavaToKotlinCopyPasteConversionTestGenerated extends Abstrac runTest("nj2k/testData/copyPastePlainText/KT32603.txt"); } + @TestMetadata("KT32604.txt") + public void testKT32604() throws Exception { + runTest("nj2k/testData/copyPastePlainText/KT32604.txt"); + } + @TestMetadata("MembersIntoClass.txt") public void testMembersIntoClass() throws Exception { runTest("nj2k/testData/copyPastePlainText/MembersIntoClass.txt");