java completion: don't suggest public classes with inaccessible containers

GitOrigin-RevId: 08e09eb6e4e96b31ccc613a741c756608449ec6e
This commit is contained in:
peter
2019-06-17 17:32:14 +02:00
committed by intellij-monorepo-bot
parent c037490b9a
commit 837c4f206f
3 changed files with 9 additions and 1 deletions

View File

@@ -876,7 +876,7 @@ public class JavaCompletionUtil {
}
public static boolean isSourceLevelAccessible(PsiElement context, PsiClass psiClass, final boolean pkgContext) {
if (!JavaPsiFacade.getInstance(psiClass.getProject()).getResolveHelper().isAccessible(psiClass, context, null)) {
if (!JavaPsiFacade.getInstance(psiClass.getProject()).getResolveHelper().isAccessible(psiClass, context, psiClass.getContainingClass())) {
return false;
}

View File

@@ -0,0 +1,3 @@
class C {
InnerInter<caret>
}

View File

@@ -296,6 +296,11 @@ public class ClassNameCompletionTest extends LightFixtureCompletionTestCase {
doJavaTest('\n');
}
public void testNoInnerInaccessibleClass() {
myFixture.addClass("package foo; interface Intf { interface InnerInterface {} }");
doAntiTest();
}
private void doJavaTest(char toType) {
final String path = "/nameCompletion/java";
myFixture.configureByFile(path + "/" + getTestName(false) + "-source.java");