diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/OptimizedImportsBuilder.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/OptimizedImportsBuilder.kt index d4ee6a9d839..4033db23719 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/OptimizedImportsBuilder.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/OptimizedImportsBuilder.kt @@ -155,8 +155,10 @@ class OptimizedImportsBuilder( } else { descriptors + .asSequence() .filterIsInstance() - .mapTo(classNamesToCheck) { it.importableFqName!! } + .map { it.importableFqName!! } + .filterTo(classNamesToCheck) { !isImportedByDefault(it) } if (!fqNames.all(this::isImportedByDefault)) { importsToGenerate.add(starImportPath) diff --git a/idea/testData/editor/optimizeImports/jvm/allUnderImports/ClassNameConflictWithinDefaultImports.kt b/idea/testData/editor/optimizeImports/jvm/allUnderImports/ClassNameConflictWithinDefaultImports.kt new file mode 100644 index 00000000000..d275aa9bd55 --- /dev/null +++ b/idea/testData/editor/optimizeImports/jvm/allUnderImports/ClassNameConflictWithinDefaultImports.kt @@ -0,0 +1,11 @@ +// NAME_COUNT_TO_USE_STAR_IMPORT: 1 +// RUNTIME_WITH_FULL_JDK +import java.lang.Character.* + +/** + * [String] + */ +fun String.some() { + System.out + UPPERCASE_LETTER +} \ No newline at end of file diff --git a/idea/testData/editor/optimizeImports/jvm/allUnderImports/ClassNameConflictWithinDefaultImports.kt.after b/idea/testData/editor/optimizeImports/jvm/allUnderImports/ClassNameConflictWithinDefaultImports.kt.after new file mode 100644 index 00000000000..61bf3b9bfd4 --- /dev/null +++ b/idea/testData/editor/optimizeImports/jvm/allUnderImports/ClassNameConflictWithinDefaultImports.kt.after @@ -0,0 +1,11 @@ +// NAME_COUNT_TO_USE_STAR_IMPORT: 1 +// RUNTIME_WITH_FULL_JDK +import java.lang.Character.UPPERCASE_LETTER + +/** + * [String] + */ +fun String.some() { + System.out + UPPERCASE_LETTER +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/imports/JvmOptimizeImportsTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/imports/JvmOptimizeImportsTestGenerated.java index f597f7082ca..e605e7ed59d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/imports/JvmOptimizeImportsTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/imports/JvmOptimizeImportsTestGenerated.java @@ -220,6 +220,12 @@ public class JvmOptimizeImportsTestGenerated extends AbstractJvmOptimizeImportsT doTest(fileName); } + @TestMetadata("ClassNameConflictWithinDefaultImports.kt") + public void testClassNameConflictWithinDefaultImports() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/jvm/allUnderImports/ClassNameConflictWithinDefaultImports.kt"); + doTest(fileName); + } + @TestMetadata("NameCountSetting.kt") public void testNameCountSetting() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/jvm/allUnderImports/NameCountSetting.kt");