mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IDEA-59350 Double completion variance for static imported fields
This commit is contained in:
@@ -876,9 +876,14 @@ public class JavaCompletionUtil {
|
||||
|
||||
boolean mayHighlight = qualifierType != null && (castedQualifierType == null || !qualifierType.isAssignableFrom(castedQualifierType));
|
||||
|
||||
final Set<PsiMember> mentioned = new THashSet<PsiMember>();
|
||||
for (CompletionElement completionElement : plainResults) {
|
||||
LookupElement item = createLookupElement(completionElement, qualifierType);
|
||||
if (item != null) {
|
||||
final Object o = item.getObject();
|
||||
if (o instanceof PsiMember) {
|
||||
mentioned.add((PsiMember)o);
|
||||
}
|
||||
set.add(mayHighlight ? highlightIfNeeded(qualifierType, item) : item);
|
||||
}
|
||||
}
|
||||
@@ -888,7 +893,7 @@ public class JavaCompletionUtil {
|
||||
memberProcessor.processMembersOfRegisteredClasses(matcher, new PairConsumer<PsiMember, PsiClass>() {
|
||||
@Override
|
||||
public void consume(PsiMember member, PsiClass psiClass) {
|
||||
if (processor.satisfies(member, ResolveState.initial())) {
|
||||
if (!mentioned.contains(member) && processor.satisfies(member, ResolveState.initial())) {
|
||||
set.add(memberProcessor.createLookupElement(member, psiClass, true));
|
||||
}
|
||||
}
|
||||
|
||||
+15
@@ -763,4 +763,19 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase {
|
||||
assertOrderedEquals myFixture.lookupElementStrings, "final", "float"
|
||||
}
|
||||
|
||||
public void testStaticallyImportedFieldsTwice() {
|
||||
myFixture.addClass("""
|
||||
class Foo {
|
||||
public static final int aZOO;
|
||||
}
|
||||
""")
|
||||
myFixture.configureByText("a.java", """
|
||||
import static Foo.*
|
||||
class Bar {{
|
||||
aZ<caret>a
|
||||
}}
|
||||
""")
|
||||
assertOneElement myFixture.completeBasic()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user