find classes to import: check accessibility (IDEA-154069)

This commit is contained in:
Anna Kozlova
2016-06-07 20:06:58 +03:00
parent 8433dd13b1
commit c245db8330
2 changed files with 25 additions and 1 deletions
@@ -28,6 +28,7 @@ import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import com.intellij.psi.util.ClassUtil;
import com.intellij.psi.util.PsiUtil;
import org.jetbrains.annotations.NotNull;
import java.util.Collections;
@@ -143,6 +144,6 @@ public class ImportClassFix extends ImportClassFixBase<PsiJavaCodeReferenceEleme
@Override
protected boolean isAccessible(PsiMember member, PsiJavaCodeReferenceElement reference) {
return member.hasModifierProperty(PsiModifier.PUBLIC) || member.hasModifierProperty(PsiModifier.PROTECTED);
return PsiUtil.isAccessible(member, reference, null);
}
}
@@ -85,6 +85,29 @@ public class Foo {
'''
}
public void testPackageLocalInner() {
myFixture.addClass 'package foo; class Outer { static class Inner {static String FOO = "";}}'
myFixture.configureByText 'a.java', '''\
package foo;
class Usage {
{
String foo = In<caret>ner.FOO;
}
}
'''
importClass()
myFixture.checkResult '''package foo;
class Usage {
{
String foo = Outer.Inner.FOO;
}
}
'''
}
public void testWrongTypeParams() throws Exception {
myFixture.addClass 'package f; public class Foo {}'
myFixture.configureByText 'a.java', '''\