From 1e6397ed1f442a49386ebbe1dd251a2fc795eb29 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Thu, 17 May 2012 20:50:57 +0200 Subject: [PATCH] fix one more case for IDEA-86027 and fix test --- ...placeOperatorAssignmentWithAssignmentIntention.java | 2 +- .../ipp/opassign/assignment/ByteOpassign_after.java | 2 +- .../com/siyeh/ipp/opassign/assignment/Precedence.java | 10 ++++++++++ .../ipp/opassign/assignment/Precedence_after.java | 10 ++++++++++ ...eOperatorAssignmentWithAssignmentIntentionTest.java | 7 ++++--- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/Precedence.java create mode 100644 plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/Precedence_after.java diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntention.java index 00e671f4c7ce..9efdeaf805a6 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntention.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntention.java @@ -81,7 +81,7 @@ public class ReplaceOperatorAssignmentWithAssignmentIntention final IElementType signTokenType = sign.getTokenType(); final IElementType newOperatorToken = tokenMap.get(signTokenType); final int precedence2 = ParenthesesUtils.getPrecedenceForBinaryOperator(newOperatorToken); - parentheses = precedence1 > precedence2 || !ParenthesesUtils.isCommutativeBinaryOperator(newOperatorToken); + parentheses = precedence1 >= precedence2 || !ParenthesesUtils.isCommutativeBinaryOperator(newOperatorToken); } else { parentheses = false; diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/ByteOpassign_after.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/ByteOpassign_after.java index 71aa66989b52..e4daf05d38e4 100644 --- a/plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/ByteOpassign_after.java +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/ByteOpassign_after.java @@ -3,6 +3,6 @@ package com.siyeh.ipp.opassign.assignment; class ByteOpassign { void foo(byte b) { - b = (byte)(b + 1); + b = (byte) (b + 1); } } \ No newline at end of file diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/Precedence.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/Precedence.java new file mode 100644 index 000000000000..fe335df71e86 --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/Precedence.java @@ -0,0 +1,10 @@ +package com.siyeh.ipp.opassign.assignment; + +class Precedence { + + void foo() { + int a = Integer.MAX_VALUE; + double d = Double.MAX_VALUE; + a += d - d;// a == 2147483647; + } +} \ No newline at end of file diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/Precedence_after.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/Precedence_after.java new file mode 100644 index 000000000000..d9d6f0f2516e --- /dev/null +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/opassign/assignment/Precedence_after.java @@ -0,0 +1,10 @@ +package com.siyeh.ipp.opassign.assignment; + +class Precedence { + + void foo() { + int a = Integer.MAX_VALUE; + double d = Double.MAX_VALUE; + a = (int) (a + (d - d));// a == 2147483647; + } +} \ No newline at end of file diff --git a/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntentionTest.java b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntentionTest.java index 690d85ef6fa6..d3decdebc342 100644 --- a/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntentionTest.java +++ b/plugins/IntentionPowerPak/testSrc/com/siyeh/ipp/opassign/ReplaceOperatorAssignmentWithAssignmentIntentionTest.java @@ -5,9 +5,10 @@ import com.siyeh.ipp.IPPTestCase; public class ReplaceOperatorAssignmentWithAssignmentIntentionTest extends IPPTestCase { public void testOperatorAssignment1() { doTest(); } - public void DoubleOpAssign() { doTest(); } - public void StringOpAssign() { doTest(); } - public void ByteOpAssign() { doTest(); } + public void testDoubleOpAssign() { doTest(); } + public void testStringOpAssign() { doTest(); } + public void testByteOpAssign() { doTest(); } + public void testPrecedence() { doTest(); } @Override protected String getIntentionName() {