J2K produces unresolved 'toArray' calls for java Collection#toArray()

#KT-11600 Fixed
This commit is contained in:
Natalia Ukhorskaya
2016-03-24 14:52:53 +03:00
parent 79bac598bf
commit 23908fb8f3
5 changed files with 49 additions and 0 deletions
@@ -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)
+7
View File
@@ -0,0 +1,7 @@
import java.util.Arrays;
public class Foo {
public Object[] m() {
return Arrays.asList("a", "b").toArray();
}
}
+7
View File
@@ -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)