From 66504c8088ec7d1f03b148c0adaa3f92320b2ac7 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Fri, 12 Oct 2018 10:34:56 +0700 Subject: [PATCH] BoolUtils: negate the equality token for float/double as this does not change the semantics (only >, >=, <, <= change) --- .../streamApiMigration/continue/afterContinueNegateFloat.java | 2 +- .../src/com/siyeh/ig/psiutils/BoolUtils.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/continue/afterContinueNegateFloat.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/continue/afterContinueNegateFloat.java index 8508435d5b46..659b4589a817 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/continue/afterContinueNegateFloat.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/streamApiMigration/continue/afterContinueNegateFloat.java @@ -8,7 +8,7 @@ public class Main { } public double test(List collection) { - double d = collection.stream().filter(person -> !(person.getAge() == 10)).mapToDouble(Person::getAge).sum(); + double d = collection.stream().filter(person -> person.getAge() != 10).mapToDouble(Person::getAge).sum(); return d; } } \ No newline at end of file diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/BoolUtils.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/BoolUtils.java index 30a7092b4ce2..f8d04898e414 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/BoolUtils.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/BoolUtils.java @@ -182,7 +182,7 @@ public class BoolUtils { final boolean isEven = (operands.length & 1) != 1; for (int i = 0, length = operands.length; i < length; i++) { final PsiExpression operand = operands[i]; - if (TypeUtils.hasFloatingPointType(operand)) { + if (TypeUtils.hasFloatingPointType(operand) && !ComparisonUtils.isEqualityComparison(polyadicExpression)) { // preserve semantics for NaNs return "!(" + polyadicExpression.getText() + ')'; }