java: don't report usages in comments in 'Suspicious package-private access' inspection (IDEA-200047)

This commit is contained in:
nik
2018-10-10 17:24:34 +03:00
parent 89f89308a8
commit ec3f07a594
2 changed files with 9 additions and 3 deletions
@@ -14,6 +14,7 @@ import com.intellij.openapi.util.AtomicClearableLazyValue;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.*;
import com.intellij.psi.impl.source.resolve.JavaResolveUtil;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.refactoring.util.RefactoringUIUtil;
import com.intellij.uast.UastVisitorAdapter;
import com.intellij.ui.ContextHelpLabel;
@@ -106,11 +107,12 @@ public class SuspiciousPackagePrivateAccessInspection extends AbstractBaseUastLo
if (sourcePsi != null) {
Module targetModule = ModuleUtilCore.findModuleForPsiElement(targetElement);
Module sourceModule = ModuleUtilCore.findModuleForPsiElement(sourcePsi);
if (isPackageLocalAccessSuspicious(sourceModule, targetModule)) {
if (isPackageLocalAccessSuspicious(sourceModule, targetModule) && PsiTreeUtil.getParentOfType(sourcePsi, PsiComment.class) == null) {
List<IntentionAction> fixes =
JvmElementActionFactories.createModifierActions(targetElement, MemberRequestsKt.modifierRequest(JvmModifier.PUBLIC, true));
holder.registerProblem(sourcePsi, StringUtil.removeHtmlTags(StringUtil.capitalize(RefactoringUIUtil.getDescription(targetElement, true))) + " is " + accessType +
", but declared in a different module '" + targetModule.getName() + "'",
String elementDescription = StringUtil.removeHtmlTags(StringUtil.capitalize(RefactoringUIUtil.getDescription(targetElement, true)));
holder.registerProblem(sourcePsi, elementDescription + " is " + accessType + ", but declared in a different module '"
+ targetModule.getName() + "'",
IntentionWrapper.wrapToQuickFixes(fixes.toArray(IntentionAction.EMPTY_ARRAY), targetElement.getContainingFile()));
}
}
@@ -2,6 +2,10 @@ package xxx;
import static xxx.StaticMembers.*;
/**
* @see PackagePrivateClass
* @see PublicClass#packagePrivateField
*/
public class AccessingPackagePrivateMembers {
Object field = new <warning descr="Class xxx.PackagePrivateClass is package-private, but declared in a different module 'dep'">PackagePrivateClass</warning>();
{