ComparisonToNaN inspection fixed, test modernized, more testcases

This commit is contained in:
Tagir Valeev
2018-06-04 16:39:48 +07:00
parent c5a90452a3
commit 51bd75f6b3
5 changed files with 38 additions and 37 deletions
@@ -43,7 +43,7 @@ public class ComparisonToNaNInspection extends BaseInspection {
public String buildErrorString(Object... infos) {
final PsiBinaryExpression comparison = (PsiBinaryExpression)infos[0];
final IElementType tokenType = comparison.getOperationTokenType();
if (!tokenType.equals(JavaTokenType.NE)) {
if (tokenType.equals(JavaTokenType.NE)) {
return InspectionGadgetsBundle.message("comparison.to.nan.problem.descriptor2");
}
else {
@@ -0,0 +1,25 @@
package com.siyeh.igtest.numeric.comparison_to_nan;
import static java.lang.Double.*;
public class ComparisonToNaN {
public void foo(double x)
{
if(x == <warning descr="Comparison to 'Float.NaN' is always false">Float.NaN</warning>)
{
return;
}
if (x == <warning descr="Comparison to 'NaN' is always false">NaN</warning>) {
return;
}
if (x > <warning descr="Comparison to 'NaN' is always false">NaN</warning>) {
return;
}
if (x <= <warning descr="Comparison to 'NaN' is always false">NaN</warning>) {
return;
}
if (<warning descr="Comparison to 'Float.NaN' is always true">Float.NaN</warning> != Float.NaN) {
return;
}
}
}
@@ -1,16 +0,0 @@
package com.siyeh.igtest.numeric.comparison_to_nan;
import static java.lang.Double.*;
public class ComparisonToNaN {
public void foo(double x)
{
if(x == Float.NaN)
{
return;
}
if (x == NaN) {
return;
}
}
}
@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<problems>
<problem>
<file>ComparisonToNaN.java</file>
<line>8</line>
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Comparison to Double.NaN or Float.NaN</problem_class>
<description>Comparison to &lt;code&gt;Float.NaN&lt;/code&gt; is always false #loc</description>
</problem>
<problem>
<file>ComparisonToNaN.java</file>
<line>12</line>
<problem_class severity="WARNING" attribute_key="WARNING_ATTRIBUTES">Comparison to Double.NaN or Float.NaN</problem_class>
<description>Comparison to &lt;code&gt;NaN&lt;/code&gt; is always false #loc</description>
</problem>
</problems>
@@ -1,10 +1,18 @@
package com.siyeh.ig.numeric;
import com.siyeh.ig.IGInspectionTestCase;
import com.intellij.codeInspection.InspectionProfileEntry;
import com.siyeh.ig.LightInspectionTestCase;
import org.jetbrains.annotations.Nullable;
public class ComparisonToNanInspectionTest extends IGInspectionTestCase {
public class ComparisonToNanInspectionTest extends LightInspectionTestCase {
public void test() {
doTest("com/siyeh/igtest/numeric/comparison_to_nan", new ComparisonToNaNInspection());
public void testComparisonToNaN() {
doTest();
}
@Nullable
@Override
protected InspectionProfileEntry getInspection() {
return new ComparisonToNaNInspection();
}
}