Fixed bug with bad conversion on paste when top-level java class copied
This commit is contained in:
@@ -588,7 +588,7 @@ fun main(args: Array<String>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
testClass(javaClass<AbstractJavaToKotlinCopyPasteConversionTest>()) {
|
testClass(javaClass<AbstractJavaToKotlinCopyPasteConversionTest>()) {
|
||||||
model("copyPaste/conversion", extension = "java")
|
model("copyPaste/conversion", pattern = """^([^\.]+)\.java$""")
|
||||||
}
|
}
|
||||||
|
|
||||||
testClass(javaClass<AbstractInsertImportOnPasteTest>()) {
|
testClass(javaClass<AbstractInsertImportOnPasteTest>()) {
|
||||||
|
|||||||
@@ -144,8 +144,7 @@ data class DataForConversion private(
|
|||||||
// element's text can be removed from file's text keeping parsing the same
|
// element's text can be removed from file's text keeping parsing the same
|
||||||
private fun canDropElementFromText(element: PsiElement): Boolean {
|
private fun canDropElementFromText(element: PsiElement): Boolean {
|
||||||
return when (element) {
|
return when (element) {
|
||||||
is PsiWhiteSpace, is PsiComment, is PsiModifierList,
|
is PsiWhiteSpace, is PsiComment, is PsiModifierList, is PsiAnnotation -> true
|
||||||
is PsiAnnotation, is PsiPackageStatement, is PsiImportList, is PsiImportStatementBase -> true
|
|
||||||
|
|
||||||
is PsiJavaToken -> {
|
is PsiJavaToken -> {
|
||||||
when (element.getTokenType()) {
|
when (element.getTokenType()) {
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package javaPack
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
public interface I {
|
||||||
|
@NotNull
|
||||||
|
String foo();
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package to
|
||||||
|
|
||||||
|
import javaPack.I
|
||||||
|
|
||||||
|
public class C : I {
|
||||||
|
override fun foo(): String {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package javaPack
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
<selection>public class C implements I {
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public String foo() {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}</selection>
|
||||||
@@ -5,5 +5,3 @@ public object JavaClass {
|
|||||||
println("Hello, world!")
|
println("Hello, world!")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun main(args: Array<String>) = JavaClass.main(args)
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// this test should cause the whole file to be converted at once (with non-selected text stripped) and the main function to be generated
|
|
||||||
package helloWorld;
|
package helloWorld;
|
||||||
|
|
||||||
// sample class
|
// sample class
|
||||||
|
|||||||
+1
@@ -58,6 +58,7 @@ public abstract class AbstractJavaToKotlinCopyPasteConversionTest : AbstractCopy
|
|||||||
myFixture.performEditorAction(IdeActions.ACTION_COPY)
|
myFixture.performEditorAction(IdeActions.ACTION_COPY)
|
||||||
|
|
||||||
configureByDependencyIfExists(testName + ".dependency.kt")
|
configureByDependencyIfExists(testName + ".dependency.kt")
|
||||||
|
configureByDependencyIfExists(testName + ".dependency.java")
|
||||||
|
|
||||||
configureTargetFile(testName + ".to.kt")
|
configureTargetFile(testName + ".to.kt")
|
||||||
|
|
||||||
|
|||||||
+7
-1
@@ -62,7 +62,7 @@ public class JavaToKotlinCopyPasteConversionTestGenerated extends AbstractJavaTo
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInConversion() throws Exception {
|
public void testAllFilesPresentInConversion() throws Exception {
|
||||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/copyPaste/conversion"), Pattern.compile("^(.+)\\.java$"), true);
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/copyPaste/conversion"), Pattern.compile("^([^\\.]+)\\.java$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("Arithmetic.java")
|
@TestMetadata("Arithmetic.java")
|
||||||
@@ -77,6 +77,12 @@ public class JavaToKotlinCopyPasteConversionTestGenerated extends AbstractJavaTo
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ClassWithOverrides.java")
|
||||||
|
public void testClassWithOverrides() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/copyPaste/conversion/ClassWithOverrides.java");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("Constructor.java")
|
@TestMetadata("Constructor.java")
|
||||||
public void testConstructor() throws Exception {
|
public void testConstructor() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/copyPaste/conversion/Constructor.java");
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/copyPaste/conversion/Constructor.java");
|
||||||
|
|||||||
Reference in New Issue
Block a user