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> {
|
override fun findUsages(): Array<UsageInfo> {
|
||||||
val allUsages = ArrayList<UsageInfo>()
|
val allUsages = ArrayList<UsageInfo>()
|
||||||
|
val javaUsages = mutableSetOf<UsageInfo>()
|
||||||
ktChangeInfo.getOrCreateJavaChangeInfos()?.let { javaChangeInfos ->
|
ktChangeInfo.getOrCreateJavaChangeInfos()?.let { javaChangeInfos ->
|
||||||
val javaProcessor = JavaChangeSignatureUsageProcessor()
|
val javaProcessor = JavaChangeSignatureUsageProcessor()
|
||||||
javaChangeInfos.mapTo(allUsages) {
|
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 }
|
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() {
|
fun testJavaConstructorKotlinUsages() {
|
||||||
doJavaTest { newParameters.removeAt(1) }
|
doJavaTest { newParameters.removeAt(1) }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user