safe varags: rename inspection

This commit is contained in:
anna
2011-02-27 16:39:34 +01:00
parent 2e882d82b0
commit f4f467bf64
4 changed files with 9 additions and 10 deletions
@@ -32,7 +32,7 @@ import org.jetbrains.annotations.NotNull;
* User: anna
* Date: 1/28/11
*/
public class SafeVarargsCanBeUsedInspection extends BaseJavaLocalInspectionTool {
public class PossibleHeapPollutionVarargsInspection extends BaseJavaLocalInspectionTool {
@Nls
@NotNull
@Override
@@ -44,7 +44,7 @@ public class SafeVarargsCanBeUsedInspection extends BaseJavaLocalInspectionTool
@NotNull
@Override
public String getDisplayName() {
return "Method can be annotated as @SafeVarargs";
return "Possible heap pollution from parameterized vararg type";
}
@Override
@@ -68,6 +68,7 @@ public class SafeVarargsCanBeUsedInspection extends BaseJavaLocalInspectionTool
if (!PsiUtil.getLanguageLevel(method).isAtLeast(LanguageLevel.JDK_1_7)) return;
if (AnnotationUtil.isAnnotated(method, "java.lang.SafeVarargs", false)) return;
if (!method.isVarArgs()) return;
final PsiParameter psiParameter = method.getParameterList().getParameters()[method.getParameterList().getParametersCount() - 1];
final PsiType componentType = ((PsiEllipsisType)psiParameter.getType()).getComponentType();
if (GenericsHighlightUtil.isReifiableType(componentType)) {
@@ -81,6 +82,9 @@ public class SafeVarargsCanBeUsedInspection extends BaseJavaLocalInspectionTool
}
final PsiIdentifier nameIdentifier = method.getNameIdentifier();
if (nameIdentifier != null) {
//if (method.hasModifierProperty(PsiModifier.ABSTRACT)) return;
//final PsiClass containingClass = method.getContainingClass();
//if (containingClass == null || containingClass.isInterface()) return; do not add
holder.registerProblem(nameIdentifier, "Possible heap pollution from parameterized vararg type #loc",
//todo check if can be final or static
method.hasModifierProperty(PsiModifier.FINAL) || method.hasModifierProperty(PsiModifier.STATIC) ? new AnnotateAsSafeVarargsQuickFix() : null);
@@ -118,7 +118,7 @@ public class StandardInspectionToolsProvider implements InspectionToolProvider {
UnknownGuardInspection.class,
ExplicitTypeCanBeDiamondInspection.class,
SafeVarargsCanBeUsedInspection.class,
PossibleHeapPollutionVarargsInspection.class,
RedundantUncheckedSuppressWarningsInspection.class
};
}
@@ -17,9 +17,6 @@ package com.intellij.codeInsight.daemon.quickFix;
import com.intellij.codeInspection.LocalInspectionTool;
import com.intellij.codeInspection.RedundantUncheckedSuppressWarningsInspection;
import com.intellij.codeInspection.SafeVarargsCanBeUsedInspection;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
public class RemoveRedundantUncheckedSuppressionTest extends LightQuickFixTestCase {
@@ -16,16 +16,14 @@
package com.intellij.codeInsight.daemon.quickFix;
import com.intellij.codeInspection.LocalInspectionTool;
import com.intellij.codeInspection.SafeVarargsCanBeUsedInspection;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
import com.intellij.codeInspection.PossibleHeapPollutionVarargsInspection;
public class SafeVarargsCanBeUsedTest extends LightQuickFixTestCase {
@Override
protected LocalInspectionTool[] configureLocalInspectionTools() {
return new LocalInspectionTool[]{
new SafeVarargsCanBeUsedInspection(),
new PossibleHeapPollutionVarargsInspection(),
};
}