IG: fix autoboxing detection for unary expressions (IDEA-180676)

This commit is contained in:
Bas Leijdekkers
2017-10-22 19:41:59 +02:00
parent b263d780cd
commit 8a40c3623d
3 changed files with 8 additions and 7 deletions
@@ -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;
@@ -9,9 +9,9 @@ public class AutoBoxing {
Long someNumber = <warning descr="Auto-boxing '0L'">0L</warning>;
Long aLong = <warning descr="Auto-boxing 'someNumber << 2'">someNumber << 2</warning>;
Long other = <warning descr="Auto-boxing 'someNumber'">someNumber</warning>++;
someNumber = <warning descr="Auto-boxing '~someNumber'">~<warning descr="Auto-boxing 'someNumber'">someNumber</warning></warning>;
someNumber = <warning descr="Auto-boxing '-someNumber'">-<warning descr="Auto-boxing 'someNumber'">someNumber</warning></warning>;
someNumber = <warning descr="Auto-boxing '+someNumber'">+<warning descr="Auto-boxing 'someNumber'">someNumber</warning></warning>;
someNumber = <warning descr="Auto-boxing '~someNumber'">~someNumber</warning>;
someNumber = <warning descr="Auto-boxing '-someNumber'">-someNumber</warning>;
someNumber = <warning descr="Auto-boxing '+someNumber'">+someNumber</warning>;
}
public void foo() {
@@ -24,9 +24,9 @@ public class AutoBoxingJava7 {
Long someNumber = <warning descr="Auto-boxing '0L'">0L</warning>;
Long aLong = <warning descr="Auto-boxing 'someNumber << 2'">someNumber << 2</warning>;
Long other = <warning descr="Auto-boxing 'someNumber'">someNumber</warning>++;
someNumber = <warning descr="Auto-boxing '~someNumber'">~<warning descr="Auto-boxing 'someNumber'">someNumber</warning></warning>;
someNumber = <warning descr="Auto-boxing '-someNumber'">-<warning descr="Auto-boxing 'someNumber'">someNumber</warning></warning>;
someNumber = <warning descr="Auto-boxing '+someNumber'">+<warning descr="Auto-boxing 'someNumber'">someNumber</warning></warning>;
someNumber = <warning descr="Auto-boxing '~someNumber'">~someNumber</warning>;
someNumber = <warning descr="Auto-boxing '-someNumber'">-someNumber</warning>;
someNumber = <warning descr="Auto-boxing '+someNumber'">+someNumber</warning>;
}
public void foo() {