mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-20 13:31:28 +07:00
correctly suggest protected methods after Xxx.super.
This commit is contained in:
@@ -80,9 +80,15 @@ public class JavaCompletionProcessor extends BaseScopeProcessor implements Eleme
|
||||
if (elementParent instanceof PsiReferenceExpression) {
|
||||
PsiExpression qualifier = ((PsiReferenceExpression)elementParent).getQualifierExpression();
|
||||
if (qualifier instanceof PsiSuperExpression) {
|
||||
myQualifierClass = JavaResolveUtil.getContextClass(myElement);
|
||||
final PsiJavaCodeReferenceElement qSuper = ((PsiSuperExpression)qualifier).getQualifier();
|
||||
if (qSuper == null) {
|
||||
myQualifierClass = JavaResolveUtil.getContextClass(myElement);
|
||||
} else {
|
||||
final PsiElement target = qSuper.resolve();
|
||||
myQualifierClass = target instanceof PsiClass ? (PsiClass)target : null;
|
||||
}
|
||||
if (myQualifierClass != null) {
|
||||
myQualifierType = JavaPsiFacade.getInstance(myElement.getProject()).getElementFactory().createType(myQualifierClass);
|
||||
myQualifierType = JavaPsiFacade.getInstance(element.getProject()).getElementFactory().createType(myQualifierClass);
|
||||
}
|
||||
}
|
||||
else if (qualifier != null) {
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
class BarImpl extends foo.Bar {
|
||||
{
|
||||
new Runnable() {
|
||||
public void run() {
|
||||
BarImpl.super.fo<caret>
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
class BarImpl extends foo.Bar {
|
||||
{
|
||||
new Runnable() {
|
||||
public void run() {
|
||||
BarImpl.super.foo();<caret>
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -832,6 +832,14 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase {
|
||||
public void testOnlyAnnotationsAfterAt() throws Throwable { doTest() }
|
||||
public void testOnlyExceptionsInCatch() throws Throwable { doTest() }
|
||||
|
||||
public void testSuperProtectedMethod() throws Throwable {
|
||||
myFixture.addClass """package foo;
|
||||
public class Bar {
|
||||
protected void foo() { }
|
||||
}"""
|
||||
doTest()
|
||||
}
|
||||
|
||||
public void testTopLevelClassesFromPackaged() throws Throwable {
|
||||
myFixture.addClass "public class Fooooo {}"
|
||||
final text = "package foo; class Bar { Fooo<caret> }"
|
||||
|
||||
Reference in New Issue
Block a user