Fix addition of wrong java.lang imports on optimize imports
Add check to star importer, to not import already imported fqNames #KT-15273 fixed
This commit is contained in:
@@ -155,8 +155,10 @@ class OptimizedImportsBuilder(
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
descriptors
|
descriptors
|
||||||
|
.asSequence()
|
||||||
.filterIsInstance<ClassDescriptor>()
|
.filterIsInstance<ClassDescriptor>()
|
||||||
.mapTo(classNamesToCheck) { it.importableFqName!! }
|
.map { it.importableFqName!! }
|
||||||
|
.filterTo(classNamesToCheck) { !isImportedByDefault(it) }
|
||||||
|
|
||||||
if (!fqNames.all(this::isImportedByDefault)) {
|
if (!fqNames.all(this::isImportedByDefault)) {
|
||||||
importsToGenerate.add(starImportPath)
|
importsToGenerate.add(starImportPath)
|
||||||
|
|||||||
Vendored
+11
@@ -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
|
||||||
|
}
|
||||||
+11
@@ -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
|
||||||
|
}
|
||||||
@@ -220,6 +220,12 @@ public class JvmOptimizeImportsTestGenerated extends AbstractJvmOptimizeImportsT
|
|||||||
doTest(fileName);
|
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")
|
@TestMetadata("NameCountSetting.kt")
|
||||||
public void testNameCountSetting() throws Exception {
|
public void testNameCountSetting() throws Exception {
|
||||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/jvm/allUnderImports/NameCountSetting.kt");
|
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/jvm/allUnderImports/NameCountSetting.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user