don't suggest to replace qualifier with import if not accessible (IDEA-188061)

This commit is contained in:
Anna.Kozlova
2018-03-12 18:34:27 +01:00
parent 7836f4062d
commit bdf7ed3738
2 changed files with 17 additions and 0 deletions
@@ -508,6 +508,19 @@ package com.rocket.test;
assert myFixture.filterAvailableIntentions('Replace qualified name').isEmpty()
}
void "test do not allow to add import on inaccessible class"() {
myFixture.addClass("package foo; class Foo {}")
myFixture.configureByText 'A.java', '''
package a;
/**
* {@link foo.Fo<caret>o}
*/
class A {}
'''
myFixture.enableInspections(new UnnecessaryFullyQualifiedNameInspection())
assert myFixture.filterAvailableIntentions('Replace qualified name').isEmpty()
}
void "test keep methods formatting on add import"() {
settings.getCommonSettings(JavaLanguage.INSTANCE).ALIGN_GROUP_FIELD_DECLARATIONS = true
@@ -259,6 +259,7 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl
collectInnerClassNames(reference, references);
}
Collections.reverse(references);
PsiResolveHelper resolveHelper = JavaPsiFacade.getInstance(containingFile.getProject()).getResolveHelper();
for (final PsiJavaCodeReferenceElement aReference : references) {
final PsiElement referenceTarget = aReference.resolve();
if (!(referenceTarget instanceof PsiClass)) {
@@ -269,6 +270,9 @@ public class UnnecessaryFullyQualifiedNameInspection extends BaseInspection impl
if (qualifiedName == null) {
continue;
}
if (!resolveHelper.isAccessible(aClass, containingFile, null)) {
continue;
}
if (!ImportUtils.nameCanBeImported(qualifiedName, reference)) {
continue;
}