mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
java: add import on inner class: disable if qualifier has provided type arguments (IDEA-267858)
GitOrigin-RevId: 9df069c5dd257e92bf549753256c42ecab98e5e4
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5e3f62bb69
commit
aef2cfb77a
+7
@@ -107,6 +107,13 @@ public class AddSingleMemberStaticImportAction extends BaseElementAtCaretIntenti
|
||||
.createReferenceFromText(refNameElement.getText(), refExpr);
|
||||
final PsiElement target = copy.resolve();
|
||||
if (target != null && PsiTreeUtil.getParentOfType(target, PsiClass.class) != aClass) return null;
|
||||
PsiElement qualifier = refExpr.getQualifier();
|
||||
if (qualifier instanceof PsiJavaCodeReferenceElement) {
|
||||
PsiReferenceParameterList parameterList = ((PsiJavaCodeReferenceElement)qualifier).getParameterList();
|
||||
if (parameterList != null && parameterList.getTypeParameterElements().length > 0) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
return new ImportAvailability(qName + "." +refExpr.getReferenceName(), (PsiMember) resolved);
|
||||
}
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package foo;
|
||||
|
||||
class Outer<O> {
|
||||
public abstract class Inner { }
|
||||
|
||||
final class FileLockingCallback extends Outer<String>.I<caret>nner { }
|
||||
}
|
||||
+5
@@ -30,6 +30,11 @@ public class AddSingleStaticImportActionTest extends JavaCodeInsightFixtureTestC
|
||||
doTest("Add import for 'foo.Class1.Inner2'");
|
||||
}
|
||||
|
||||
public void testDisabledInsideParameterizedQualifierReference() {
|
||||
myFixture.configureByFile(getTestName(false) + ".java");
|
||||
assertNull(myFixture.getAvailableIntention("Add import for 'foo.Outer.Inner'"));
|
||||
}
|
||||
|
||||
public void testWrongCandidateAfterImport() {
|
||||
myFixture.addClass("package foo; class Empty {}"); //to ensure package is in the project
|
||||
doTest("Add static import for 'foo.Test.X.test'");
|
||||
|
||||
Reference in New Issue
Block a user