From 442e7f64e2c11e2bd2f20e1cde43dca866f18f3d Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 5 Jan 2018 16:01:09 +0100 Subject: [PATCH] resolve import conflict with implicit imports (IDEA-100555) --- .../impl/source/codeStyle/ImportHelper.java | 2 +- .../intention/AddImportActionTest.groovy | 50 +++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java index 738a3073987e..b5a651a153cd 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/codeStyle/ImportHelper.java @@ -449,7 +449,7 @@ public class ImportHelper{ } // check conflicts if (useOnDemand){ - PsiElement[] onDemandRefs = file.getOnDemandImports(false, true); + PsiElement[] onDemandRefs = file.getOnDemandImports(true, true); List refTexts = new ArrayList<>(onDemandRefs.length); for (PsiElement ref : onDemandRefs) { String refName = ref instanceof PsiClass ? ((PsiClass)ref).getQualifiedName() : ((PsiPackage)ref).getQualifiedName(); diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/AddImportActionTest.groovy b/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/AddImportActionTest.groovy index 388c433354b6..9aedfafc54e2 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/AddImportActionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/AddImportActionTest.groovy @@ -226,6 +226,56 @@ class C { B b; } +''' + } + + void testImportFoldingWithConflictsToJavaLang() { + + myFixture.addClass 'package p1; public class String {}' + myFixture.addClass 'package p1; public class A1 {}' + myFixture.addClass 'package p1; public class A2 {}' + myFixture.addClass 'package p1; public class A3 {}' + myFixture.addClass 'package p1; public class A4 {}' + myFixture.addClass 'package p1; public class A5 {}' + + myFixture.configureByText 'C.java', '''package p2; + +import p1.A1; +import p1.A2; +import p1.A3; +import p1.A4; + +class C { + + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + + String myName; +} + +''' + importClass() + + myFixture.checkResult '''package p2; + +import p1.*; + +import java.lang.String; + +class C { + + A1 a1; + A2 a2; + A3 a3; + A4 a4; + A5 a5; + + String myName; +} + ''' }