diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
index 4e17fcce7709..f509493add05 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
@@ -19,7 +19,7 @@ instanceof.check.for.this.display.name='instanceof' check for 'this'
instanceof.check.for.this.problem.descriptor='instanceof' check for #ref #loc
local.variable.of.concrete.class.display.name=Local variable of concrete class
local.variable.of.concrete.class.problem.descriptor=Local variable ''{0}'' of concrete class #ref #loc
-magic.number.display.name="Magic number"
+magic.number.display.name=Magic number
magic.number.problem.descriptor=Magic number #ref #loc
magic.number.ignore.option=Ignore constants in 'hashCode()' methods
method.return.concrete.class.display.name=Method return of concrete class
diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/abstraction/MagicNumberInspectionBase.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/abstraction/MagicNumberInspectionBase.java
index 051ddcb9c4f5..d3cec0b1542c 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/abstraction/MagicNumberInspectionBase.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/abstraction/MagicNumberInspectionBase.java
@@ -30,8 +30,8 @@ import javax.swing.*;
public class MagicNumberInspectionBase extends BaseInspection {
@SuppressWarnings("PublicField")
public boolean ignoreInHashCode = true;
- @SuppressWarnings("PublicField")
- public boolean ignoreInTestCode = false;
+ @SuppressWarnings({"PublicField", "UnusedDeclaration"})
+ public boolean ignoreInTestCode = false; // keep for compatibility
@SuppressWarnings("PublicField")
public boolean ignoreInAnnotations = true;
@SuppressWarnings("PublicField")
@@ -53,17 +53,11 @@ public class MagicNumberInspectionBase extends BaseInspection {
public JComponent createOptionsPanel() {
final MultipleCheckboxOptionsPanel panel = new MultipleCheckboxOptionsPanel(this);
panel.addCheckbox(InspectionGadgetsBundle.message("magic.number.ignore.option"), "ignoreInHashCode");
- panel.addCheckbox(InspectionGadgetsBundle.message("ignore.in.test.code"), "ignoreInTestCode");
panel.addCheckbox(InspectionGadgetsBundle.message("ignore.in.annotations"),"ignoreInAnnotations");
panel.addCheckbox(InspectionGadgetsBundle.message("ignore.as.initial.capacity"), "ignoreInitialCapacity");
return panel;
}
- @Override
- protected boolean buildQuickFixesOnlyForOnTheFlyErrors() {
- return true;
- }
-
@Override
public BaseInspectionVisitor buildVisitor() {
return new MagicNumberVisitor();
@@ -87,9 +81,6 @@ public class MagicNumberInspectionBase extends BaseInspection {
return;
}
}
- if (ignoreInTestCode && TestUtils.isInTestCode(expression)) {
- return;
- }
if (ignoreInAnnotations) {
final boolean insideAnnotation = AnnotationUtil.isInsideAnnotation(expression);
if (insideAnnotation) {
@@ -111,10 +102,10 @@ public class MagicNumberInspectionBase extends BaseInspection {
}
final PsiElement parent = expression.getParent();
if (parent instanceof PsiPrefixExpression) {
- registerError(parent);
+ registerError(parent, parent);
}
else {
- registerError(expression);
+ registerError(expression, expression);
}
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/abstraction/MagicNumberInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/abstraction/MagicNumberInspection.java
index 686bc2edf04d..2dde368f788f 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/abstraction/MagicNumberInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/abstraction/MagicNumberInspection.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2012 Dave Griffith, Bas Leijdekkers
+ * Copyright 2003-2013 Dave Griffith, Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,13 +15,27 @@
*/
package com.siyeh.ig.abstraction;
+import com.intellij.psi.PsiElement;
import com.siyeh.ig.InspectionGadgetsFix;
import com.siyeh.ig.fixes.IntroduceConstantFix;
+import com.siyeh.ig.fixes.SuppressForTestsScopeFix;
+import org.jetbrains.annotations.NotNull;
public class MagicNumberInspection extends MagicNumberInspectionBase {
+ @NotNull
@Override
- protected InspectionGadgetsFix buildFix(Object... infos) {
- return new IntroduceConstantFix();
+ protected InspectionGadgetsFix[] buildFixes(Object... infos) {
+ final PsiElement context = (PsiElement)infos[0];
+ final InspectionGadgetsFix fix = SuppressForTestsScopeFix.build(this, context);
+ if (fix == null) {
+ return new InspectionGadgetsFix[] {new IntroduceConstantFix()};
+ }
+ return new InspectionGadgetsFix[] {new IntroduceConstantFix(), fix};
+ }
+
+ @Override
+ protected boolean buildQuickFixesOnlyForOnTheFlyErrors() {
+ return true;
}
}
diff --git a/plugins/InspectionGadgets/src/inspectionDescriptions/MagicNumber.html b/plugins/InspectionGadgets/src/inspectionDescriptions/MagicNumber.html
index b61700762976..af21b69bac29 100644
--- a/plugins/InspectionGadgets/src/inspectionDescriptions/MagicNumber.html
+++ b/plugins/InspectionGadgets/src/inspectionDescriptions/MagicNumber.html
@@ -1,18 +1,16 @@
Use the first checkbox below to disable this inspection within hashCode() methods.
-Use the second checkbox below to ignore magic numbers in test code. +Use the second checkbox below to ignore magic numbers in annotations.
-Use the third checkbox below to ignore magic numbers in annotations. -
-Use the fourth checkbox below to ignore magic numbers used as initial capacity when constructing Collection, Map, +Use the third checkbox below to ignore magic numbers used as initial capacity when constructing Collection, Map, StringBuilder or StringBuffer objects.