ReplaceJavaStaticMethodWithKotlinAnalogInspection: fix false positive for 'Arrays.copyOf'

#KT-32477
This commit is contained in:
Dmitry Gridin
2019-07-08 14:29:49 +03:00
parent 4a8dbeda1b
commit 24caca1882
3 changed files with 16 additions and 1 deletions
@@ -168,7 +168,9 @@ class ReplaceJavaStaticMethodWithKotlinAnalogInspection : AbstractKotlinInspecti
)
private val JAVA_COLLECTIONS = listOf(
Replacement("java.util.Arrays.copyOf", "kotlin.collections.copyOf", toExtensionFunction = true),
Replacement("java.util.Arrays.copyOf", "kotlin.collections.copyOf", toExtensionFunction = true) {
it.valueArguments.size == 2
},
Replacement("java.util.Arrays.asList", "kotlin.collections.listOf"),
Replacement("java.util.Arrays.asList", "kotlin.collections.mutableListOf"),
Replacement("java.util.Set.of", "kotlin.collections.setOf"),
@@ -0,0 +1,8 @@
// WITH_RUNTIME
// PROBLEM: none
import java.util.Arrays
fun test() {
val array = arrayOf(1, 2, 3)
val result = Arrays.<caret>copyOf(array, 3, Array<Double>::class.java)
}
@@ -9081,6 +9081,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest {
runTest("idea/testData/inspectionsLocal/replaceJavaStaticMethodWithKotlinAnalog/collections/nonArraysCopyOf.kt");
}
@TestMetadata("notCopyOf.kt")
public void testNotCopyOf() throws Exception {
runTest("idea/testData/inspectionsLocal/replaceJavaStaticMethodWithKotlinAnalog/collections/notCopyOf.kt");
}
@TestMetadata("qualified.kt")
public void testQualified() throws Exception {
runTest("idea/testData/inspectionsLocal/replaceJavaStaticMethodWithKotlinAnalog/collections/qualified.kt");