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); }