Change signature does not make doubled refactoring for java usages
Fixed #KT-22170
This commit is contained in:
+5
-1
@@ -76,10 +76,14 @@ class KotlinChangeSignatureProcessor(
|
||||
|
||||
override fun findUsages(): Array<UsageInfo> {
|
||||
val allUsages = ArrayList<UsageInfo>()
|
||||
val javaUsages = mutableSetOf<UsageInfo>()
|
||||
ktChangeInfo.getOrCreateJavaChangeInfos()?.let { javaChangeInfos ->
|
||||
val javaProcessor = JavaChangeSignatureUsageProcessor()
|
||||
javaChangeInfos.mapTo(allUsages) {
|
||||
KotlinWrapperForJavaUsageInfos(it, javaProcessor.findUsages(it), changeInfo.method)
|
||||
val javaUsagesForKtChange = javaProcessor.findUsages(it)
|
||||
val uniqueJavaUsagesForKtChange = javaUsagesForKtChange.filterNot<UsageInfo> { javaUsages.contains(it) }
|
||||
javaUsages.addAll(javaUsagesForKtChange)
|
||||
KotlinWrapperForJavaUsageInfos(it, uniqueJavaUsagesForKtChange.toTypedArray(), changeInfo.method)
|
||||
}
|
||||
}
|
||||
super.findUsages().filterTo(allUsages) { it is KotlinUsageInfo<*> || it is UnresolvableCollisionUsageInfo }
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
class Test {
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun fooStatic(second: Int, first: String) { }
|
||||
}
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
public class JavaTest {
|
||||
public static void test() {
|
||||
Test.Companion.fooStatic(2, "First");
|
||||
Test.fooStatic(2, "First");
|
||||
}
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
class Test {
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun fooStatic(first: String, second: Int) { }
|
||||
}
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
public class JavaTest {
|
||||
public static void test() {
|
||||
Test.Companion.<caret>fooStatic("First", 2);
|
||||
Test.fooStatic("First", 2);
|
||||
}
|
||||
}
|
||||
+8
@@ -563,6 +563,14 @@ class KotlinChangeSignatureTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||
}
|
||||
}
|
||||
|
||||
fun testJavaMethodJvmStaticKotlinUsages() {
|
||||
doJavaTest {
|
||||
val first = newParameters[1]
|
||||
newParameters[1] = newParameters[0]
|
||||
newParameters[0] = first
|
||||
}
|
||||
}
|
||||
|
||||
fun testJavaConstructorKotlinUsages() {
|
||||
doJavaTest { newParameters.removeAt(1) }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user