From 4c2a14ff43693220cd728b5b8c7aa9816d3d292e Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 15 Jan 2016 15:40:16 +0300 Subject: [PATCH] KT-9834 Optimizing imports with named import (kinda like static import) #KT-9834 Fixed --- .../jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt | 6 +++--- idea/testData/editor/optimizeImports/TrivialAlias.kt | 3 +++ idea/testData/editor/optimizeImports/TrivialAlias.kt.after | 3 +++ .../kotlin/idea/imports/OptimizeImportsTestGenerated.java | 6 ++++++ 4 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 idea/testData/editor/optimizeImports/TrivialAlias.kt create mode 100644 idea/testData/editor/optimizeImports/TrivialAlias.kt.after diff --git a/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt b/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt index db71ea61f75..9caa20e4d5d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt @@ -23,14 +23,14 @@ import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.idea.caches.resolve.analyze -import org.jetbrains.kotlin.idea.util.getFileResolutionScope import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade import org.jetbrains.kotlin.idea.core.formatter.KotlinCodeStyleSettings -import org.jetbrains.kotlin.idea.util.getResolutionScope import org.jetbrains.kotlin.idea.references.KtReference import org.jetbrains.kotlin.idea.references.canBeResolvedViaImport import org.jetbrains.kotlin.idea.util.ImportInsertHelper import org.jetbrains.kotlin.idea.util.application.runWriteAction +import org.jetbrains.kotlin.idea.util.getFileResolutionScope +import org.jetbrains.kotlin.idea.util.getResolutionScope import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name @@ -256,7 +256,7 @@ class KotlinImportOptimizer() : ImportOptimizer { for (import in imports) { val path = import.importPath ?: continue val aliasName = path.alias - if (aliasName != null) { + if (aliasName != null && aliasName != path.fqnPart().shortName() /* we do not keep trivial aliases */) { aliasImports.put(aliasName, path.fqnPart()) } } diff --git a/idea/testData/editor/optimizeImports/TrivialAlias.kt b/idea/testData/editor/optimizeImports/TrivialAlias.kt new file mode 100644 index 00000000000..604be716b64 --- /dev/null +++ b/idea/testData/editor/optimizeImports/TrivialAlias.kt @@ -0,0 +1,3 @@ +import java.io.File as File + +val file: File \ No newline at end of file diff --git a/idea/testData/editor/optimizeImports/TrivialAlias.kt.after b/idea/testData/editor/optimizeImports/TrivialAlias.kt.after new file mode 100644 index 00000000000..606e7c25f59 --- /dev/null +++ b/idea/testData/editor/optimizeImports/TrivialAlias.kt.after @@ -0,0 +1,3 @@ +import java.io.File + +val file: File \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/imports/OptimizeImportsTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/imports/OptimizeImportsTestGenerated.java index e54b3806378..0d6dd5457d9 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/imports/OptimizeImportsTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/imports/OptimizeImportsTestGenerated.java @@ -227,6 +227,12 @@ public class OptimizeImportsTestGenerated extends AbstractOptimizeImportsTest { doTest(fileName); } + @TestMetadata("TrivialAlias.kt") + public void testTrivialAlias() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/TrivialAlias.kt"); + doTest(fileName); + } + @TestMetadata("UnusedImports.kt") public void testUnusedImports() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/UnusedImports.kt");