From 8a40c3623d6fe771065bbc1c36d21647aa4398fa Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Tue, 17 Oct 2017 16:24:22 +0200 Subject: [PATCH] IG: fix autoboxing detection for unary expressions (IDEA-180676) --- .../src/com/siyeh/ig/psiutils/ExpressionUtils.java | 3 ++- .../test/com/siyeh/igtest/jdk/auto_boxing/AutoBoxing.java | 6 +++--- .../com/siyeh/igtest/jdk/auto_boxing/AutoBoxingJava7.java | 6 +++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ExpressionUtils.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ExpressionUtils.java index 6c8b7e3c2f2c..c89e8482f96a 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ExpressionUtils.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/ExpressionUtils.java @@ -846,7 +846,8 @@ public class ExpressionUtils { } final PsiType expressionType = expression.getType(); if (PsiPrimitiveType.getUnboxedType(expressionType) != null && parent instanceof PsiUnaryExpression) { - return true; + final IElementType sign = ((PsiUnaryExpression)parent).getOperationTokenType(); + return sign == JavaTokenType.PLUSPLUS || sign == JavaTokenType.MINUSMINUS; } if (expressionType == null || expressionType.equals(PsiType.VOID) || !TypeConversionUtil.isPrimitiveAndNotNull(expressionType)) { return false; diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/jdk/auto_boxing/AutoBoxing.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/jdk/auto_boxing/AutoBoxing.java index 6df0c79e481f..ff8dece2c4f2 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/jdk/auto_boxing/AutoBoxing.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/jdk/auto_boxing/AutoBoxing.java @@ -9,9 +9,9 @@ public class AutoBoxing { Long someNumber = 0L; Long aLong = someNumber << 2; Long other = someNumber++; - someNumber = ~someNumber; - someNumber = -someNumber; - someNumber = +someNumber; + someNumber = ~someNumber; + someNumber = -someNumber; + someNumber = +someNumber; } public void foo() { diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/jdk/auto_boxing/AutoBoxingJava7.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/jdk/auto_boxing/AutoBoxingJava7.java index 851ee777ae6c..557f51446807 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/jdk/auto_boxing/AutoBoxingJava7.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/jdk/auto_boxing/AutoBoxingJava7.java @@ -24,9 +24,9 @@ public class AutoBoxingJava7 { Long someNumber = 0L; Long aLong = someNumber << 2; Long other = someNumber++; - someNumber = ~someNumber; - someNumber = -someNumber; - someNumber = +someNumber; + someNumber = ~someNumber; + someNumber = -someNumber; + someNumber = +someNumber; } public void foo() {