IDEA-151371 Ambiguous import of Map that is not ambiguous anymore

This commit is contained in:
peter
2016-02-10 12:39:18 +01:00
parent 48b3d6ac9b
commit 1b6d4b8701
2 changed files with 16 additions and 6 deletions
@@ -235,12 +235,7 @@ public abstract class ImportClassFixBase<T extends PsiElement, R extends PsiRefe
protected static List<PsiClass> filterAssignableFrom(PsiType type, List<PsiClass> candidates) {
final PsiClass actualClass = PsiUtil.resolveClassInClassTypeOnly(type);
if (actualClass != null) {
return ContainerUtil.findAll(candidates, new Condition<PsiClass>() {
@Override
public boolean value(PsiClass psiClass) {
return InheritanceUtil.isInheritorOrSelf(psiClass, actualClass, true);
}
});
return ContainerUtil.findAll(candidates, psiClass -> InheritanceUtil.isInheritorOrSelf(actualClass, psiClass, true));
}
return candidates;
}
@@ -14,6 +14,8 @@
* limitations under the License.
*/
package com.intellij.codeInsight.intention
import com.intellij.codeInsight.daemon.impl.quickfix.ImportClassFix
import com.intellij.lang.java.JavaLanguage
import com.intellij.pom.java.LanguageLevel
import com.intellij.psi.codeStyle.CodeStyleSettings
@@ -101,6 +103,19 @@ public class Foo {
'''
}
public void "test use initializer"() {
myFixture.addClass 'package foo; public class Map {}'
myFixture.configureByText 'a.java', '''\
import java.util.HashMap;
public class Foo {
Ma<caret>p l = new HashMap<>();
}
'''
ImportClassFix intention = myFixture.findSingleIntention("Import class") as ImportClassFix
assert intention.classesToImport.collect { it.qualifiedName } == ['java.util.Map']
}
public void testUseOverrideContext() {
myFixture.addClass 'package foo; public class Log {}'
myFixture.addClass 'package bar; public class Log {}'