From ca87e7933f6eac5fdb7a6c91a66008c549d27399 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 20 Oct 2015 17:42:37 +0300 Subject: [PATCH] Move: Drop Java on-demand static imports of facade class members when original facade is eliminated due to Move refactoring #KT-9624 Fixed --- .../jetbrains/kotlin/idea/refactoring/move/moveUtils.kt | 8 ++++++-- .../after/a/onDemandStaticImport.java | 2 -- .../after/c/onDemandStaticImport.java | 2 -- .../after/a/onDemandStaticImport.java | 2 -- .../after/b/onDemandStaticImport.java | 2 -- .../after/c/onDemandStaticImport.java | 2 -- .../after/a/onDemandStaticImport.java | 2 -- .../after/b/onDemandStaticImport.java | 2 -- .../after/c/onDemandStaticImport.java | 2 -- .../moveFunctionToFile/after/a/onDemandStaticImport.java | 2 -- .../moveFunctionToFile/after/b/onDemandStaticImport.java | 2 -- .../moveFunctionToFile/after/c/onDemandStaticImport.java | 2 -- .../after/a/onDemandStaticImport.java | 2 -- .../after/b/onDemandStaticImport.java | 2 -- .../after/c/onDemandStaticImport.java | 2 -- .../movePropertyToFile/after/a/onDemandStaticImport.java | 2 -- .../movePropertyToFile/after/b/onDemandStaticImport.java | 2 -- .../movePropertyToFile/after/c/onDemandStaticImport.java | 2 -- .../after/a/onDemandStaticImport.java | 2 -- .../after/b/onDemandStaticImport.java | 2 -- .../after/c/onDemandStaticImport.java | 2 -- 21 files changed, 6 insertions(+), 42 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt index 8a6397f7e91..d1f77cf4eea 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt @@ -209,8 +209,12 @@ private fun updateJavaReference(reference: PsiReferenceExpression, oldElement: P // Remove import of old package facade, if any val oldClassName = oldElement.getContainingClass()?.getQualifiedName() if (oldClassName != null) { - val importOfOldClass = (reference.getContainingFile() as? PsiJavaFile)?.getImportList()?.getImportStatements()?.firstOrNull { - it.getQualifiedName() == oldClassName + val importOfOldClass = (reference.containingFile as? PsiJavaFile)?.importList?.allImportStatements?.firstOrNull { + when (it) { + is PsiImportStatement -> it.qualifiedName == oldClassName + is PsiImportStaticStatement -> it.isOnDemand && it.importReference?.canonicalText == oldClassName + else -> false + } } if (importOfOldClass != null && importOfOldClass.resolve() == null) { importOfOldClass.delete() diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveFileWithPackageRename/after/a/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveFile/moveFileWithPackageRename/after/a/onDemandStaticImport.java index 5d5b256a829..1c8c01125d1 100644 --- a/idea/testData/refactoring/move/kotlin/moveFile/moveFileWithPackageRename/after/a/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveFile/moveFileWithPackageRename/after/a/onDemandStaticImport.java @@ -2,8 +2,6 @@ package a; import b.Test; -import static a.MainKt.*; - class J { void bar() { Test t = new Test(); diff --git a/idea/testData/refactoring/move/kotlin/moveFile/moveFileWithPackageRename/after/c/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveFile/moveFileWithPackageRename/after/c/onDemandStaticImport.java index 431e18d44b2..d511ad527d2 100644 --- a/idea/testData/refactoring/move/kotlin/moveFile/moveFileWithPackageRename/after/c/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveFile/moveFileWithPackageRename/after/c/onDemandStaticImport.java @@ -2,8 +2,6 @@ package c; import b.Test; -import static a.MainKt.*; - class J { void bar() { Test t = new Test(); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/a/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/a/onDemandStaticImport.java index 072b23354b4..8224a279512 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/a/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/a/onDemandStaticImport.java @@ -1,7 +1,5 @@ package a; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.test(new Test()); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/b/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/b/onDemandStaticImport.java index def508e5930..e998c377616 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/b/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/b/onDemandStaticImport.java @@ -1,7 +1,5 @@ package b; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.test(new a.Test()); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/c/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/c/onDemandStaticImport.java index 9098c686471..1e0035747e4 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/c/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionFunctionToFil/after/c/onDemandStaticImport.java @@ -1,7 +1,5 @@ package c; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.test(new a.Test()); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/a/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/a/onDemandStaticImport.java index f785feba4cb..4f0d7cb0fb2 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/a/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/a/onDemandStaticImport.java @@ -1,7 +1,5 @@ package a; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.getTest(new Test()); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/b/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/b/onDemandStaticImport.java index 5a05ac87bbf..c51a9474c3f 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/b/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/b/onDemandStaticImport.java @@ -1,7 +1,5 @@ package b; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.getTest(new a.Test()); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/c/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/c/onDemandStaticImport.java index 533c383b988..e205c4e953c 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/c/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveExtensionPropertyToFile/after/c/onDemandStaticImport.java @@ -1,7 +1,5 @@ package c; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.getTest(new a.Test()); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/a/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/a/onDemandStaticImport.java index 5fe3a80498c..27bccae2678 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/a/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/a/onDemandStaticImport.java @@ -1,7 +1,5 @@ package a; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.test(); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/b/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/b/onDemandStaticImport.java index cd8fc38d42f..63093982a99 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/b/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/b/onDemandStaticImport.java @@ -1,7 +1,5 @@ package b; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.test(); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/c/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/c/onDemandStaticImport.java index 1f37a9f8eaa..d0739a83600 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/c/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToFile/after/c/onDemandStaticImport.java @@ -1,7 +1,5 @@ package c; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.test(); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/a/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/a/onDemandStaticImport.java index 7975741148f..5a4b292dd55 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/a/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/a/onDemandStaticImport.java @@ -1,7 +1,5 @@ package a; -import static a.MainKt.*; - class J { void bar() { b.TestKt.test(); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/b/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/b/onDemandStaticImport.java index e4b0fe7eb77..a4c7be5b68b 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/b/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/b/onDemandStaticImport.java @@ -1,7 +1,5 @@ package b; -import static a.MainKt.*; - class J { void bar() { b.TestKt.test(); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/c/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/c/onDemandStaticImport.java index b550dd91fc5..f53d9eef368 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/c/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/moveFunctionToPackage/after/c/onDemandStaticImport.java @@ -1,7 +1,5 @@ package c; -import static a.MainKt.*; - class J { void bar() { b.TestKt.test(); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/a/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/a/onDemandStaticImport.java index ace68cefe24..da7656dcd91 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/a/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/a/onDemandStaticImport.java @@ -1,7 +1,5 @@ package a; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.setTest(""); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/b/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/b/onDemandStaticImport.java index 504a26e279e..0a7d28e83ef 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/b/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/b/onDemandStaticImport.java @@ -1,7 +1,5 @@ package b; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.setTest(""); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/c/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/c/onDemandStaticImport.java index bcb764f89e3..0b464bb828f 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/c/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToFile/after/c/onDemandStaticImport.java @@ -1,7 +1,5 @@ package c; -import static a.MainKt.*; - class J { void bar() { b.DependencyKt.setTest(""); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/a/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/a/onDemandStaticImport.java index abbbc38bec9..569e78cc3b9 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/a/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/a/onDemandStaticImport.java @@ -1,7 +1,5 @@ package a; -import static a.MainKt.*; - class J { void bar() { b.TestKt.setTest(""); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/b/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/b/onDemandStaticImport.java index 5f1f10b71ba..fc219a3f2f9 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/b/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/b/onDemandStaticImport.java @@ -1,7 +1,5 @@ package b; -import static a.MainKt.*; - class J { void bar() { b.TestKt.setTest(""); diff --git a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/c/onDemandStaticImport.java b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/c/onDemandStaticImport.java index a5a34b47cc6..030af7e2514 100644 --- a/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/c/onDemandStaticImport.java +++ b/idea/testData/refactoring/move/kotlin/moveTopLevelDeclarations/movePropertyToPackage/after/c/onDemandStaticImport.java @@ -1,7 +1,5 @@ package c; -import static a.MainKt.*; - class J { void bar() { b.TestKt.setTest("");