From 2c499916f6a8d76b0bc6f2b189699f0f59297d5d Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Mon, 22 Jun 2020 23:39:20 +0700 Subject: [PATCH] PointlessArithmeticExpression: do not report if multiplication by 1.0 is used to cast. GitOrigin-RevId: 8a24b3877998651ce031415d0ad68ef1e3f36c7a --- .../ig/numeric/PointlessArithmeticExpressionInspection.java | 4 +++- .../PointlessArithmeticExpression.java | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java index b1ad2ddde4a6..97ac5ec981aa 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/numeric/PointlessArithmeticExpressionInspection.java @@ -40,6 +40,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; @@ -230,7 +231,8 @@ public class PointlessArithmeticExpressionInspection extends BaseInspection { isOne(expressions[1]); } if (type.equals(JavaTokenType.ASTERISK)) { - return isOne(expressions[0]) || isOne(expressions[1]); + return (isOne(expressions[0]) || isOne(expressions[1])) && + Objects.requireNonNull(expressions[0].getType()).equals(expressions[1].getType()); } return false; } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/numeric/pointless_arithmetic_expression/PointlessArithmeticExpression.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/numeric/pointless_arithmetic_expression/PointlessArithmeticExpression.java index 3ac31b4853be..90b9fd4ef18b 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/numeric/pointless_arithmetic_expression/PointlessArithmeticExpression.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/numeric/pointless_arithmetic_expression/PointlessArithmeticExpression.java @@ -173,4 +173,8 @@ class FloatingPoint { float res7 = x * 0.0f; float res8 = 0.0f / x; } + + void multiplyToCast(int x, int y) { + double xyz = (1.0 * x) / y; + } } \ No newline at end of file