diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/numeric/ImplicitNumericConversionInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/numeric/ImplicitNumericConversionInspection.java index 132746e2bb03..095d0fcd931e 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/numeric/ImplicitNumericConversionInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/numeric/ImplicitNumericConversionInspection.java @@ -294,7 +294,7 @@ public class ImplicitNumericConversionInspection extends BaseInspection { if (expressionType.equals(expectedType)) { return; } - if (ignoreWideningConversions && TypeUtils.isNarrowingConversion(expressionType, expectedType)) { + if (ignoreWideningConversions && !TypeUtils.isNarrowingConversion(expressionType, expectedType)) { return; } if (ignoreCharConversions && PsiType.CHAR.equals(expectedType)) { diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/numeric/implicit_numeric_conversion/IgnoreCharConversion.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/numeric/implicit_numeric_conversion/IgnoreCharConversion.java new file mode 100644 index 000000000000..d701a79c06e8 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/numeric/implicit_numeric_conversion/IgnoreCharConversion.java @@ -0,0 +1,7 @@ +class IgnoreCharConversion { + + void m(int i) { + final char a = 'a'; + i = a; + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/numeric/implicit_numeric_conversion/IgnoreWidening.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/numeric/implicit_numeric_conversion/IgnoreWidening.java new file mode 100644 index 000000000000..d15577feaf12 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/numeric/implicit_numeric_conversion/IgnoreWidening.java @@ -0,0 +1,6 @@ +class IgnoreWidening { + void m(int i) { + long l = i; + byte b = 2; + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/numeric/ImplicitNumericConversionInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/numeric/ImplicitNumericConversionInspectionTest.java index 2801c0cd14bc..2eca741c6846 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/numeric/ImplicitNumericConversionInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/numeric/ImplicitNumericConversionInspectionTest.java @@ -6,7 +6,22 @@ import org.jetbrains.annotations.Nullable; public class ImplicitNumericConversionInspectionTest extends LightInspectionTestCase { - public void testImplicitNumericConversion() throws Exception { + public void testImplicitNumericConversion() { + doTest(); + } + + public void testIgnoreCharConversion() { + final ImplicitNumericConversionInspection inspection = new ImplicitNumericConversionInspection(); + inspection.ignoreCharConversions = true; + myFixture.enableInspections(inspection); + doTest(); + } + + public void testIgnoreWidening() { + final ImplicitNumericConversionInspection inspection = new ImplicitNumericConversionInspection(); + inspection.ignoreWideningConversions = true; + inspection.ignoreConstantConversions = true; + myFixture.enableInspections(inspection); doTest(); }