J2K produces unresolved 'toArray' calls for java Collection#toArray()
#KT-11600 Fixed
This commit is contained in:
@@ -36,6 +36,11 @@ enum class SpecialMethod(val qualifiedClassName: String?, val methodName: String
|
||||
= convertMethodCallToPropertyUse(codeConverter, qualifier)
|
||||
},
|
||||
|
||||
COLLECTION_TO_ARRAY(Collection::class.java.name, "toArray", 0) {
|
||||
override fun convertCall(qualifier: PsiExpression?, arguments: Array<PsiExpression>, typeArgumentsConverted: List<Type>, codeConverter: CodeConverter)
|
||||
= convertWithChangedName("toTypedArray", qualifier, arguments.notNull(), typeArgumentsConverted, codeConverter)
|
||||
},
|
||||
|
||||
MAP_SIZE(Map::class.java.name, "size", 0) {
|
||||
override fun convertCall(qualifier: PsiExpression?, arguments: Array<PsiExpression>, typeArgumentsConverted: List<Type>, codeConverter: CodeConverter)
|
||||
= convertMethodCallToPropertyUse(codeConverter, qualifier)
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
import java.util.Arrays;
|
||||
|
||||
public class Foo {
|
||||
public Object[] m() {
|
||||
return Arrays.asList("a", "b").toArray();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import java.util.Arrays
|
||||
|
||||
class Foo {
|
||||
fun m(): Array<Any> {
|
||||
return Arrays.asList("a", "b").toTypedArray()
|
||||
}
|
||||
}
|
||||
@@ -4232,6 +4232,21 @@ public class JavaToKotlinConverterForWebDemoTestGenerated extends AbstractJavaTo
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("j2k/testData/fileOrElement/toArray")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class ToArray extends AbstractJavaToKotlinConverterForWebDemoTest {
|
||||
public void testAllFilesPresentInToArray() throws Exception {
|
||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("j2k/testData/fileOrElement/toArray"), Pattern.compile("^(.+)\\.java$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("toArray.java")
|
||||
public void testToArray() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/toArray/toArray.java");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("j2k/testData/fileOrElement/toKotlinClasses")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
|
||||
@@ -4232,6 +4232,21 @@ public class JavaToKotlinConverterSingleFileTestGenerated extends AbstractJavaTo
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("j2k/testData/fileOrElement/toArray")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class ToArray extends AbstractJavaToKotlinConverterSingleFileTest {
|
||||
public void testAllFilesPresentInToArray() throws Exception {
|
||||
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("j2k/testData/fileOrElement/toArray"), Pattern.compile("^(.+)\\.java$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("toArray.java")
|
||||
public void testToArray() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("j2k/testData/fileOrElement/toArray/toArray.java");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("j2k/testData/fileOrElement/toKotlinClasses")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
|
||||
Reference in New Issue
Block a user