diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/SymmetricUncheckedCast.java b/java/java-tests/testData/inspection/dataFlow/fixture/SymmetricUncheckedCast.java new file mode 100644 index 000000000000..8c1087bf9018 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/fixture/SymmetricUncheckedCast.java @@ -0,0 +1,22 @@ +import java.util.Date; + +public class DataFlowBug { + + private static boolean isNumberable(Object o) { + return o instanceof Number; + } + + public Object add(Object left, Object right) { + if (left != null && right != null && (left instanceof Date || right instanceof Date)) { + if (isNumberable(left)) { + return ((Date) right).getTime(); + } + + if (isNumberable(right)) { + return ((Date) left).getTime(); + } + } + return new Object(); + } + +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionFixtureTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionFixtureTest.java index 4864bb856e56..4b93063ce552 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionFixtureTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspectionFixtureTest.java @@ -149,6 +149,7 @@ public class DataFlowInspectionFixtureTest extends JavaCodeInsightFixtureTestCas public void testLastConstantConditionInAnd() { doTest(); } public void testTransientFinalField() { doTest(); } + public void _testSymmetricUncheckedCast() { doTest(); } public void testNullableForeachVariable() { setupCustomAnnotations();