From a6c236849871feb1db794f66f3a5126060532864 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 24 Aug 2011 20:43:45 +0200 Subject: [PATCH] redundant casts: exclude casts from primitive types in synchronized stms (IDEA-58637 ) --- .../PrimitiveInsideSynchronized/expected.xml | 3 +++ .../PrimitiveInsideSynchronized/src/CastTest.java | 8 ++++++++ .../com/intellij/codeInspection/RedundantCastTest.java | 1 + .../src/com/intellij/psi/util/RedundantCastUtil.java | 2 ++ 4 files changed, 14 insertions(+) create mode 100644 java/java-tests/testData/inspection/redundantCast/PrimitiveInsideSynchronized/expected.xml create mode 100644 java/java-tests/testData/inspection/redundantCast/PrimitiveInsideSynchronized/src/CastTest.java diff --git a/java/java-tests/testData/inspection/redundantCast/PrimitiveInsideSynchronized/expected.xml b/java/java-tests/testData/inspection/redundantCast/PrimitiveInsideSynchronized/expected.xml new file mode 100644 index 000000000000..5e933496b9cf --- /dev/null +++ b/java/java-tests/testData/inspection/redundantCast/PrimitiveInsideSynchronized/expected.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/java/java-tests/testData/inspection/redundantCast/PrimitiveInsideSynchronized/src/CastTest.java b/java/java-tests/testData/inspection/redundantCast/PrimitiveInsideSynchronized/src/CastTest.java new file mode 100644 index 000000000000..9d607cb34a76 --- /dev/null +++ b/java/java-tests/testData/inspection/redundantCast/PrimitiveInsideSynchronized/src/CastTest.java @@ -0,0 +1,8 @@ +class CastTest +{ + public static void main (String[] args) throws CloneNotSupportedException + { + int i = 0; + synchronized ((Object)i){} + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCastTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCastTest.java index 0e04743e8dce..d789f377ec61 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCastTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantCastTest.java @@ -90,4 +90,5 @@ public class RedundantCastTest extends InspectionTestCase { public void testIDEADEV25675() throws Exception { doTest(); } public void testNestedCast() throws Exception { doTest(); } + public void testPrimitiveInsideSynchronized() throws Exception { doTest(); } } diff --git a/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java b/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java index e2c2b8af2d38..04661fa11d1b 100644 --- a/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java +++ b/java/openapi/src/com/intellij/psi/util/RedundantCastUtil.java @@ -353,6 +353,8 @@ public class RedundantCastUtil { //branches need to be of the same type if (!Comparing.equal(operand.getType(), ((PsiConditionalExpression)parent).getType())) return; } + } else if (parent instanceof PsiSynchronizedStatement && (expr instanceof PsiExpression && ((PsiExpression)expr).getType() instanceof PsiPrimitiveType)) { + return; } processAlreadyHasTypeCast(typeCast); }