IDEA-124317 super class method is not shown in basic and smart completion, while accessible

This commit is contained in:
peter
2014-05-02 18:42:05 +02:00
parent a655925043
commit 676f08abb5
4 changed files with 30 additions and 1 deletions
@@ -73,6 +73,7 @@ public class JavaCompletionProcessor extends BaseScopeProcessor implements Eleme
private final PsiElement myScope;
private final ElementFilter myFilter;
private boolean myMembersFlag = false;
private boolean myQualified = false;
private PsiType myQualifierType = null;
private PsiClass myQualifierClass = null;
private final Condition<String> myMatcher;
@@ -108,6 +109,7 @@ public class JavaCompletionProcessor extends BaseScopeProcessor implements Eleme
}
}
else if (qualifier != null) {
myQualified = true;
setQualifierType(qualifier.getType());
if (myQualifierType == null && qualifier instanceof PsiJavaCodeReferenceElement) {
final PsiElement target = ((PsiJavaCodeReferenceElement)qualifier).resolve();
@@ -304,7 +306,7 @@ public class JavaCompletionProcessor extends BaseScopeProcessor implements Eleme
if (!(element instanceof PsiMember)) return true;
PsiMember member = (PsiMember)element;
PsiClass accessObjectClass = member instanceof PsiClass ? null : myQualifierClass;
PsiClass accessObjectClass = myQualified ? myQualifierClass : null;
return JavaPsiFacade.getInstance(element.getProject()).getResolveHelper().isAccessible(member, member.getModifierList(), myElement,
accessObjectClass, myDeclarationHolder);
}
@@ -0,0 +1,11 @@
class Zoo extends foo.Super {
void foo() {
new Runnable() {
@Override
public void run() {
myStr<caret>
}
};
}
}
@@ -0,0 +1,11 @@
class Zoo extends foo.Super {
void foo() {
new Runnable() {
@Override
public void run() {
myString<caret>
}
};
}
}
@@ -1451,4 +1451,9 @@ class Bar {
assertStringItems('abcdefgXxx')
}
public void testProtectedFieldInAnotherPackage() {
myFixture.addClass("package foo; public class Super { protected String myString; }");
doTest()
}
}