mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-83918 Error completion behaviour for methods in imports.
This commit is contained in:
@@ -449,7 +449,7 @@ public class JavaCompletionUtil {
|
||||
|
||||
final Set<PsiMember> mentioned = new THashSet<PsiMember>();
|
||||
for (CompletionElement completionElement : processor.getResults()) {
|
||||
LookupElement item = createLookupElement(completionElement);
|
||||
LookupElement item = createLookupElement(completionElement, javaReference);
|
||||
if (item != null) {
|
||||
item.putUserData(QUALIFIER_TYPE_ATTR, qualifierType);
|
||||
final Object o = item.getObject();
|
||||
@@ -603,10 +603,15 @@ public class JavaCompletionUtil {
|
||||
}), 1);
|
||||
}
|
||||
|
||||
private static LookupElement createLookupElement(CompletionElement completionElement) {
|
||||
private static LookupElement createLookupElement(CompletionElement completionElement, PsiJavaReference reference) {
|
||||
Object completion = completionElement.getElement();
|
||||
assert !(completion instanceof LookupElement);
|
||||
|
||||
if (completion instanceof PsiMethod &&
|
||||
reference instanceof PsiJavaCodeReferenceElement &&
|
||||
((PsiJavaCodeReferenceElement)reference).getParent() instanceof PsiImportStaticStatement) {
|
||||
return JavaLookupElementBuilder.forMethod((PsiMethod)completion, PsiSubstitutor.EMPTY);
|
||||
}
|
||||
|
||||
LookupElement _ret = LookupItemUtil.objectToLookupItem(completion);
|
||||
if (_ret == null || !(_ret instanceof LookupItem)) return null;
|
||||
|
||||
+1
-1
@@ -764,7 +764,7 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme
|
||||
@Override
|
||||
public void processVariants(final PsiScopeProcessor processor) {
|
||||
final OrFilter filter = new OrFilter();
|
||||
if (isInCode()) {
|
||||
if (isInCode() && !(getParent() instanceof PsiImportStatement)) {
|
||||
filter.addFilter(new AndFilter(ElementClassFilter.METHOD, new NotFilter(new ConstructorFilter())));
|
||||
filter.addFilter(ElementClassFilter.VARIABLE);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
import static java.util.Collections.emptySe<caret>
|
||||
class A {}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import static java.util.Collections.emptySet<caret>
|
||||
class A {}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import java.util.Collections.<caret>
|
||||
class A {}
|
||||
+7
@@ -638,6 +638,13 @@ public class ListUtils {
|
||||
assert lookup.currentItem != myFixture.lookupElements[0]
|
||||
assert 'finalize' == lookup.currentItem.lookupString
|
||||
}
|
||||
|
||||
public void testNoMethodsInNonStaticImports() {
|
||||
configure()
|
||||
assertStringItems("*")
|
||||
}
|
||||
|
||||
public void testMembersInStaticImports() { doTest() }
|
||||
|
||||
public void testPackageNamedVariableBeforeAssignment() throws Throwable {
|
||||
doTest();
|
||||
|
||||
Reference in New Issue
Block a user