From 1508f0a28bec4d95c6863bc91ddfadd57ce50f7e Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Fri, 14 Sep 2018 13:36:06 +0700 Subject: [PATCH] DataFlowInspectionAncientTest converted to LightCodeInsightFixtureTestCase --- .../inspection/dataFlow/AlexBug/expected.xml | 2 - .../expected.xml | 8 - .../dataFlow/ArrayAccessNPE/expected.xml | 8 - .../dataFlow/ArrayAccessNPE/src/Test.java | 9 - .../dataFlow/BoxingNaN/expected.xml | 63 --- .../dataFlow/BoxingNaN/src/Test.java | 22 - .../CatchParameterCantBeNull/expected.xml | 13 - .../CatchParameterCantBeNull/src/Test.java | 16 - .../CheckedExceptionDominance/expected.xml | 3 - .../ConditionFalseAndNPE/expected.xml | 18 - .../ConditionFalseAndNPE/src/Test.java | 14 - .../ConstantsDifferentTypes/expected.xml | 47 --- .../ConstantsDifferentTypes/src/Test.java | 19 - .../dataFlow/FieldsFlashing/expected.xml | 8 - .../dataFlow/ForEachNPE/expected.xml | 8 - .../dataFlow/ForEachNPE/src/Test.java | 8 - .../dataFlow/ForeachFlow/expected.xml | 3 - .../dataFlow/GenericInstanceof/expected.xml | 9 - .../src/GenericInstanceof.java | 12 - .../dataFlow/IDEADEV10489/expected.xml | 13 - .../dataFlow/IDEADEV13153/expected.xml | 8 - .../dataFlow/IDEADEV13156/expected.xml | 2 - .../dataFlow/IDEADEV15583/expected.xml | 18 - .../dataFlow/IDEADEV1575/expected.xml | 8 - .../dataFlow/IDEADEV1575/src/Test.java | 6 - .../dataFlow/IDEADEV2605/expected.xml | 86 ---- .../dataFlow/IDEADEV2605/src/AndAssign.java | 72 ---- .../dataFlow/IDEADEV74518/expected.xml | 10 - .../dataFlow/IDEADEV74518_2/expected.xml | 3 - .../dataFlow/IDEADEV77819/expected.xml | 3 - .../dataFlow/IDEADEV78370/expected.xml | 3 - .../dataFlow/Instanceof/expected.xml | 9 - .../dataFlow/Instanceof/src/Foo.java | 14 - .../dataFlow/NotNullArray/expected.xml | 2 - .../NotNullLocalVariable/expected.xml | 3 - .../dataFlow/NotNullable/expected.xml | 9 - .../NotNullableParameter/expected.xml | 9 - .../NotNullableParameter/src/Npe.java | 11 - .../NotNullableParameter2/expected.xml | 9 - .../inspection/dataFlow/Nullable/expected.xml | 8 - .../NullableLocalVariable/expected.xml | 8 - .../NullableProblemThroughCast/expected.xml | 8 - .../dataFlow/NullableReturn/expected.xml | 8 - .../dataFlow/NullableReturn1/expected.xml | 8 - .../dataFlow/NullableThroughCast/expected.xml | 8 - .../NullableThroughVariable/expected.xml | 8 - .../expected.xml | 2 - .../dataFlow/PlusOnStrings/expected.xml | 8 - .../dataFlow/RegressionByPti/expected.xml | 3 - .../inspection/dataFlow/SCR13626/expected.xml | 14 - .../dataFlow/SCR13626/src/Test.java | 16 - .../inspection/dataFlow/SCR13871/expected.xml | 3 - .../inspection/dataFlow/SCR14314/expected.xml | 9 - .../inspection/dataFlow/SCR14819/expected.xml | 19 - .../dataFlow/SCR14819/src/Test.java | 17 - .../inspection/dataFlow/SCR15162/expected.xml | 9 - .../dataFlow/SCR15162/src/NullTest.java | 9 - .../inspection/dataFlow/SCR15406/expected.xml | 3 - .../inspection/dataFlow/SCR18186/expected.xml | 2 - .../inspection/dataFlow/SCR39950/expected.xml | 2 - .../StrangeArrayIndexOutOfBounds/expected.xml | 2 - .../dataFlow/SwitchEnumCases/expected.xml | 8 - .../SwitchQualifierProducesNPE/expected.xml | 8 - .../inspection/dataFlow/YoleBug/expected.xml | 8 - .../src/Test.java => ancient/AlexBug.java} | 2 +- .../inspection/dataFlow/ancient/AndEq.java | 8 + .../ArrayAccessDoesntCancelAnalysis.java} | 4 +- .../dataFlow/ancient/ArrayAccessNPE.java | 9 + .../dataFlow/ancient/Autoboxing.java | 119 ++++++ .../dataFlow/ancient/BoxingNaN.java | 22 + .../src => ancient}/CaseAndNpe.java | 14 +- .../ancient/CatchParameterCantBeNull.java | 16 + .../dataFlow/{cce/src => ancient}/Cce.java | 2 +- .../CheckedExceptionDominance.java} | 2 + .../ancient/ConditionFalseAndNPE.java | 14 + .../Test.java => ancient/ConstantExpr.java} | 4 +- .../ancient/ConstantsDifferentTypes.java | 19 + .../src => ancient}/ExceptionCFG.java | 0 .../Test.java => ancient/FieldsFlashing.java} | 4 +- .../Test.java => ancient/FinalFields.java} | 2 +- .../dataFlow/ancient/ForEachNPE.java | 8 + .../src/Npe.java => ancient/ForeachFlow.java} | 2 +- .../dataFlow/ancient/GenericInstanceof.java | 12 + .../src => ancient}/IDEADEV10489.java | 4 +- .../Npe.java => ancient/IDEADEV13153.java} | 2 +- .../Npe.java => ancient/IDEADEV13156.java} | 1 + .../Npe.java => ancient/IDEADEV15583.java} | 6 +- .../dataFlow/ancient/IDEADEV1575.java | 6 + .../dataFlow/ancient/IDEADEV2605.java | 72 ++++ .../IDEADEV74518.java} | 4 +- .../IDEADEV74518_2.java} | 2 +- .../IDEADEV77819.java} | 2 +- .../IDEADEV78370.java} | 2 +- .../dataFlow/{inst/src => ancient}/Inst.java | 4 +- .../dataFlow/ancient/Instanceof.java | 14 + .../Test.java => ancient/NotNullArray.java} | 2 +- .../NotNullLocalVariable.java} | 2 +- .../src/Npe.java => ancient/NotNullable.java} | 4 +- .../ancient/NotNullableParameter.java | 11 + .../NotNullableParameter2.java} | 4 +- .../inspection/dataFlow/ancient/Npe1.java | 9 + .../src/Npe.java => ancient/Nullable.java} | 4 +- .../dataFlow/ancient/NullableField.java | 8 + .../NullableLocalVariable.java} | 4 +- .../NullableProblemThroughCast.java} | 4 +- .../Npe.java => ancient/NullableReturn.java} | 4 +- .../NullableReturn1.java} | 2 +- .../NullableThroughCast.java} | 4 +- .../NullableThroughVariable.java} | 4 +- ...leThroughVariableShouldNotBeReported.java} | 2 +- .../src/Test.java => ancient/OrBug.java} | 2 +- .../Test.java => ancient/PlusOnStrings.java} | 4 +- .../RegressionByPti.java} | 2 +- .../inspection/dataFlow/ancient/SCR13626.java | 16 + .../src/Aaa.java => ancient/SCR13871.java} | 2 +- .../Finally.java => ancient/SCR14314.java} | 6 +- .../inspection/dataFlow/ancient/SCR14819.java | 18 + .../inspection/dataFlow/ancient/SCR15162.java | 9 + .../SCR15406.java} | 2 +- .../src/Test.java => ancient/SCR18186.java} | 32 +- .../src/Test.java => ancient/SCR39950.java} | 0 .../src/Test.java => ancient/ScrIDEA1.java} | 0 .../StrangeArrayIndexOutOfBounds.java} | 14 +- .../SwitchEnumCases.java} | 4 +- .../SwitchQualifierProducesNPE.java} | 4 +- .../dataFlow/ancient/ThisInstanceof.java | 5 + .../dataFlow/ancient/UnboxingNPE.java | 106 +++++ .../WrongEqualTypes.java} | 2 +- .../{xor/src/Test.java => ancient/Xor.java} | 2 +- .../src/Test.java => ancient/YoleBug.java} | 4 +- .../inspection/dataFlow/andEq/expected.xml | 8 - .../inspection/dataFlow/andEq/src/Test.java | 8 - .../dataFlow/autoboxing/expected.xml | 345 ---------------- .../dataFlow/autoboxing/src/Test.java | 119 ------ .../dataFlow/caseAndNpe/expected.xml | 34 -- .../inspection/dataFlow/cce/expected.xml | 9 - .../dataFlow/constantExpr/expected.xml | 8 - .../dataFlow/exceptionCFG/expected.xml | 3 - .../dataFlow/finalFields/expected.xml | 2 - .../inspection/dataFlow/inst/expected.xml | 14 - .../inspection/dataFlow/npe1/expected.xml | 9 - .../inspection/dataFlow/npe1/src/Npe.java | 9 - .../dataFlow/nullableField/expected.xml | 9 - .../dataFlow/nullableField/src/Test.java | 8 - .../inspection/dataFlow/orBug/expected.xml | 3 - .../inspection/dataFlow/scrIDEA1/expected.xml | 2 - .../dataFlow/thisInstanceof/expected.xml | 8 - .../dataFlow/thisInstanceof/src/Test.java | 5 - .../dataFlow/unboxingNPE/expected.xml | 387 ------------------ .../dataFlow/unboxingNPE/src/Test.java | 104 ----- .../dataFlow/wrongEqualTypes/expected.xml | 3 - .../inspection/dataFlow/xor/expected.xml | 2 - .../DataFlowInspectionAncientTest.java | 151 +++---- 153 files changed, 674 insertions(+), 2046 deletions(-) delete mode 100644 java/java-tests/testData/inspection/dataFlow/AlexBug/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/ArrayAccessDoesntCancelAnalysis/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/ArrayAccessNPE/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/ArrayAccessNPE/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/BoxingNaN/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/BoxingNaN/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/CatchParameterCantBeNull/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/CatchParameterCantBeNull/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/CheckedExceptionDominance/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/ConditionFalseAndNPE/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/ConditionFalseAndNPE/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/ConstantsDifferentTypes/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/ConstantsDifferentTypes/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/FieldsFlashing/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/ForEachNPE/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/ForEachNPE/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/ForeachFlow/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/GenericInstanceof/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/GenericInstanceof/src/GenericInstanceof.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV10489/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV13153/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV13156/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV15583/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV1575/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV1575/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV2605/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV2605/src/AndAssign.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV74518/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV74518_2/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV77819/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/IDEADEV78370/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/Instanceof/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/Instanceof/src/Foo.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/NotNullArray/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/NotNullLocalVariable/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/NotNullable/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/NotNullableParameter/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/NotNullableParameter/src/Npe.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/NotNullableParameter2/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/Nullable/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/NullableLocalVariable/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/NullableProblemThroughCast/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/NullableReturn/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/NullableReturn1/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/NullableThroughCast/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/NullableThroughVariable/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/NullableThroughVariableShouldNotBeReported/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/PlusOnStrings/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/RegressionByPti/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/SCR13626/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/SCR13626/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/SCR13871/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/SCR14314/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/SCR14819/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/SCR14819/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/SCR15162/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/SCR15162/src/NullTest.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/SCR15406/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/SCR18186/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/SCR39950/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/StrangeArrayIndexOutOfBounds/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/SwitchEnumCases/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/SwitchQualifierProducesNPE/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/YoleBug/expected.xml rename java/java-tests/testData/inspection/dataFlow/{AlexBug/src/Test.java => ancient/AlexBug.java} (88%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/AndEq.java rename java/java-tests/testData/inspection/dataFlow/{ArrayAccessDoesntCancelAnalysis/src/Test.java => ancient/ArrayAccessDoesntCancelAnalysis.java} (58%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/ArrayAccessNPE.java create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/Autoboxing.java create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/BoxingNaN.java rename java/java-tests/testData/inspection/dataFlow/{caseAndNpe/src => ancient}/CaseAndNpe.java (72%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/CatchParameterCantBeNull.java rename java/java-tests/testData/inspection/dataFlow/{cce/src => ancient}/Cce.java (65%) rename java/java-tests/testData/inspection/dataFlow/{CheckedExceptionDominance/src/Test.java => ancient/CheckedExceptionDominance.java} (95%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/ConditionFalseAndNPE.java rename java/java-tests/testData/inspection/dataFlow/{constantExpr/src/Test.java => ancient/ConstantExpr.java} (57%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/ConstantsDifferentTypes.java rename java/java-tests/testData/inspection/dataFlow/{exceptionCFG/src => ancient}/ExceptionCFG.java (100%) rename java/java-tests/testData/inspection/dataFlow/{FieldsFlashing/src/Test.java => ancient/FieldsFlashing.java} (92%) rename java/java-tests/testData/inspection/dataFlow/{finalFields/src/Test.java => ancient/FinalFields.java} (91%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/ForEachNPE.java rename java/java-tests/testData/inspection/dataFlow/{ForeachFlow/src/Npe.java => ancient/ForeachFlow.java} (93%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/GenericInstanceof.java rename java/java-tests/testData/inspection/dataFlow/{IDEADEV10489/src => ancient}/IDEADEV10489.java (61%) rename java/java-tests/testData/inspection/dataFlow/{IDEADEV13153/src/Npe.java => ancient/IDEADEV13153.java} (61%) rename java/java-tests/testData/inspection/dataFlow/{IDEADEV13156/src/Npe.java => ancient/IDEADEV13156.java} (90%) rename java/java-tests/testData/inspection/dataFlow/{IDEADEV15583/src/Npe.java => ancient/IDEADEV15583.java} (56%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV1575.java create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV2605.java rename java/java-tests/testData/inspection/dataFlow/{IDEADEV74518/src/NoWarnings.java => ancient/IDEADEV74518.java} (68%) rename java/java-tests/testData/inspection/dataFlow/{IDEADEV74518_2/src/Sample.java => ancient/IDEADEV74518_2.java} (88%) rename java/java-tests/testData/inspection/dataFlow/{IDEADEV77819/src/NoWarnings.java => ancient/IDEADEV77819.java} (90%) rename java/java-tests/testData/inspection/dataFlow/{IDEADEV78370/src/NoWarnings.java => ancient/IDEADEV78370.java} (86%) rename java/java-tests/testData/inspection/dataFlow/{inst/src => ancient}/Inst.java (73%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/Instanceof.java rename java/java-tests/testData/inspection/dataFlow/{NotNullArray/src/Test.java => ancient/NotNullArray.java} (90%) rename java/java-tests/testData/inspection/dataFlow/{NotNullLocalVariable/src/Npe.java => ancient/NotNullLocalVariable.java} (91%) rename java/java-tests/testData/inspection/dataFlow/{NotNullable/src/Npe.java => ancient/NotNullable.java} (52%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/NotNullableParameter.java rename java/java-tests/testData/inspection/dataFlow/{NotNullableParameter2/src/Npe.java => ancient/NotNullableParameter2.java} (57%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/Npe1.java rename java/java-tests/testData/inspection/dataFlow/{NullableThroughCast/src/Npe.java => ancient/Nullable.java} (60%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/NullableField.java rename java/java-tests/testData/inspection/dataFlow/{NullableLocalVariable/src/Npe.java => ancient/NullableLocalVariable.java} (60%) rename java/java-tests/testData/inspection/dataFlow/{NullableProblemThroughCast/src/Npe.java => ancient/NullableProblemThroughCast.java} (64%) rename java/java-tests/testData/inspection/dataFlow/{NullableReturn/src/Npe.java => ancient/NullableReturn.java} (51%) rename java/java-tests/testData/inspection/dataFlow/{NullableReturn1/src/Test.java => ancient/NullableReturn1.java} (54%) rename java/java-tests/testData/inspection/dataFlow/{Nullable/src/Npe.java => ancient/NullableThroughCast.java} (58%) rename java/java-tests/testData/inspection/dataFlow/{NullableThroughVariable/src/Npe.java => ancient/NullableThroughVariable.java} (68%) rename java/java-tests/testData/inspection/dataFlow/{NullableThroughVariableShouldNotBeReported/src/Npe.java => ancient/NullableThroughVariableShouldNotBeReported.java} (94%) rename java/java-tests/testData/inspection/dataFlow/{orBug/src/Test.java => ancient/OrBug.java} (86%) rename java/java-tests/testData/inspection/dataFlow/{PlusOnStrings/src/Test.java => ancient/PlusOnStrings.java} (57%) rename java/java-tests/testData/inspection/dataFlow/{RegressionByPti/src/NoWarnings.java => ancient/RegressionByPti.java} (97%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/SCR13626.java rename java/java-tests/testData/inspection/dataFlow/{SCR13871/src/Aaa.java => ancient/SCR13871.java} (92%) rename java/java-tests/testData/inspection/dataFlow/{SCR14314/src/Finally.java => ancient/SCR14314.java} (67%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/SCR14819.java create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/SCR15162.java rename java/java-tests/testData/inspection/dataFlow/{SCR15406/src/CodeFlowTest.java => ancient/SCR15406.java} (95%) rename java/java-tests/testData/inspection/dataFlow/{SCR18186/src/Test.java => ancient/SCR18186.java} (68%) rename java/java-tests/testData/inspection/dataFlow/{SCR39950/src/Test.java => ancient/SCR39950.java} (100%) rename java/java-tests/testData/inspection/dataFlow/{scrIDEA1/src/Test.java => ancient/ScrIDEA1.java} (100%) rename java/java-tests/testData/inspection/dataFlow/{StrangeArrayIndexOutOfBounds/src/Test.java => ancient/StrangeArrayIndexOutOfBounds.java} (68%) rename java/java-tests/testData/inspection/dataFlow/{SwitchEnumCases/src/Test.java => ancient/SwitchEnumCases.java} (90%) rename java/java-tests/testData/inspection/dataFlow/{SwitchQualifierProducesNPE/src/Test.java => ancient/SwitchQualifierProducesNPE.java} (56%) create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/ThisInstanceof.java create mode 100644 java/java-tests/testData/inspection/dataFlow/ancient/UnboxingNPE.java rename java/java-tests/testData/inspection/dataFlow/{wrongEqualTypes/src/Test.java => ancient/WrongEqualTypes.java} (87%) rename java/java-tests/testData/inspection/dataFlow/{xor/src/Test.java => ancient/Xor.java} (89%) rename java/java-tests/testData/inspection/dataFlow/{YoleBug/src/Test.java => ancient/YoleBug.java} (51%) delete mode 100644 java/java-tests/testData/inspection/dataFlow/andEq/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/andEq/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/autoboxing/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/autoboxing/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/caseAndNpe/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/cce/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/constantExpr/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/exceptionCFG/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/finalFields/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/inst/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/npe1/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/npe1/src/Npe.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/nullableField/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/nullableField/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/orBug/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/scrIDEA1/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/thisInstanceof/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/thisInstanceof/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/unboxingNPE/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/unboxingNPE/src/Test.java delete mode 100644 java/java-tests/testData/inspection/dataFlow/wrongEqualTypes/expected.xml delete mode 100644 java/java-tests/testData/inspection/dataFlow/xor/expected.xml diff --git a/java/java-tests/testData/inspection/dataFlow/AlexBug/expected.xml b/java/java-tests/testData/inspection/dataFlow/AlexBug/expected.xml deleted file mode 100644 index 796a315e49f5..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/AlexBug/expected.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/java/java-tests/testData/inspection/dataFlow/ArrayAccessDoesntCancelAnalysis/expected.xml b/java/java-tests/testData/inspection/dataFlow/ArrayAccessDoesntCancelAnalysis/expected.xml deleted file mode 100644 index 40578e1dfcc8..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/ArrayAccessDoesntCancelAnalysis/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 9 - Passing null argument to parameter annotated as @NotNull - - diff --git a/java/java-tests/testData/inspection/dataFlow/ArrayAccessNPE/expected.xml b/java/java-tests/testData/inspection/dataFlow/ArrayAccessNPE/expected.xml deleted file mode 100644 index b008dd52de23..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/ArrayAccessNPE/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 5 - Array access <code>path[0]</code> will produce <code>NullPointerException</code> - - diff --git a/java/java-tests/testData/inspection/dataFlow/ArrayAccessNPE/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ArrayAccessNPE/src/Test.java deleted file mode 100644 index 2fb4a8258eec..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/ArrayAccessNPE/src/Test.java +++ /dev/null @@ -1,9 +0,0 @@ -public class Test { - public String foo(String[] path) { - if (path != null) return null; - - String p = path[0]; - - return ""; - } -} diff --git a/java/java-tests/testData/inspection/dataFlow/BoxingNaN/expected.xml b/java/java-tests/testData/inspection/dataFlow/BoxingNaN/expected.xml deleted file mode 100644 index 3859c7d2c6b9..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/BoxingNaN/expected.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - Test.java - 6 - - void main(String[] args) - main(String[]) - <default> - - DoubleTrouble - DoubleTrouble - - - Condition <code>b == Double.NaN</code> is always <code>false</code>. - - - - Test.java - 11 - - void main(String[] args) - main(String[]) - <default> - - DoubleTrouble - DoubleTrouble - - - Condition <code>Float.NaN != Float.NaN</code> is always <code>true</code>. - - - - Test.java - 18 - - void main(String[] args) - main(String[]) - <default> - - DoubleTrouble - DoubleTrouble - - - Condition <code>Double.NaN == a</code> is always <code>false</code>. - - - - Test.java - 19 - - void main(String[] args) - main(String[]) - <default> - - DoubleTrouble - DoubleTrouble - - - Condition <code>b == a</code> is always <code>false</code>. - - - diff --git a/java/java-tests/testData/inspection/dataFlow/BoxingNaN/src/Test.java b/java/java-tests/testData/inspection/dataFlow/BoxingNaN/src/Test.java deleted file mode 100644 index c495bbb1bf40..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/BoxingNaN/src/Test.java +++ /dev/null @@ -1,22 +0,0 @@ -public class DoubleTrouble { - public static void main(String[] args) { - { - Double a = Double.NaN; - double b = a;//Double.NaN; - if (b == Double.NaN) { - ; - } - } - - if (Float.NaN != Float.NaN) { - - } - - { - double a = Double.NaN; - double b = Double.NaN; - if (Double.NaN == a) {} - if (b == a) {} - } - } -} diff --git a/java/java-tests/testData/inspection/dataFlow/CatchParameterCantBeNull/expected.xml b/java/java-tests/testData/inspection/dataFlow/CatchParameterCantBeNull/expected.xml deleted file mode 100644 index 081e8fa489e3..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/CatchParameterCantBeNull/expected.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - Test.java - 8 - Condition 'e == null' is always false - - - Test.java - 11 - Condition 'e instanceof FileNotFoundException' is always false - - diff --git a/java/java-tests/testData/inspection/dataFlow/CatchParameterCantBeNull/src/Test.java b/java/java-tests/testData/inspection/dataFlow/CatchParameterCantBeNull/src/Test.java deleted file mode 100644 index d08fbacdaad2..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/CatchParameterCantBeNull/src/Test.java +++ /dev/null @@ -1,16 +0,0 @@ -import java.io.*; - -public class Foo { - public void foo() { - try { - throw new EOFException("aaa"); - } catch (Exception e) { - if (e == null) { - System.out.println("Can't be here."); - } - if (e instanceof FileNotFoundException) { - System.out.println("Can't be here."); - } - } - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/CheckedExceptionDominance/expected.xml b/java/java-tests/testData/inspection/dataFlow/CheckedExceptionDominance/expected.xml deleted file mode 100644 index ec272abeaa3a..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/CheckedExceptionDominance/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/ConditionFalseAndNPE/expected.xml b/java/java-tests/testData/inspection/dataFlow/ConditionFalseAndNPE/expected.xml deleted file mode 100644 index 14cd1f5b170a..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/ConditionFalseAndNPE/expected.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - Test.java - 9 - Method invocation 'foo' may produce NullPointerException - - - Test.java - 10 - Method invocation 'foo' may produce NullPointerException - - - Test.java - 10 - Method invocation 'foo' may produce NullPointerException - - diff --git a/java/java-tests/testData/inspection/dataFlow/ConditionFalseAndNPE/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ConditionFalseAndNPE/src/Test.java deleted file mode 100644 index 0b029ac00fb5..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/ConditionFalseAndNPE/src/Test.java +++ /dev/null @@ -1,14 +0,0 @@ -import org.jetbrains.annotations.Nullable; -public class Foo { - @Nullable Foo foo() { - return null; - } - - public void bar() { - if (foo() != null && - foo().foo() != null && - foo().foo().foo() != null) { - - } - } -} diff --git a/java/java-tests/testData/inspection/dataFlow/ConstantsDifferentTypes/expected.xml b/java/java-tests/testData/inspection/dataFlow/ConstantsDifferentTypes/expected.xml deleted file mode 100644 index ba08c50fd758..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/ConstantsDifferentTypes/expected.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - Test.java - 4 - - void f() - f() - <default> - - Test - Test - - - Condition <code>L == 5</code> is always <code>true</code> - - - - Test.java - 9 - - void f() - f() - <default> - - Test - Test - - - Condition <code>l == 0f</code> is always <code>true</code> - - - - Test.java - 14 - - void f() - f() - <default> - - Test - Test - - - Condition <code>c == 1L</code> is always <code>true</code> - - diff --git a/java/java-tests/testData/inspection/dataFlow/ConstantsDifferentTypes/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ConstantsDifferentTypes/src/Test.java deleted file mode 100644 index 447cd4e24682..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/ConstantsDifferentTypes/src/Test.java +++ /dev/null @@ -1,19 +0,0 @@ -public class Test { - void f() { - Long L = 5L; - if (L == 5) { - ; - } - - long l = 0; - if (l == 0f) { - ; - } - - char c = 1; - if (c == 1L) { - ; - } - - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/FieldsFlashing/expected.xml b/java/java-tests/testData/inspection/dataFlow/FieldsFlashing/expected.xml deleted file mode 100644 index 1e9d5ef4fdb8..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/FieldsFlashing/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 18 - Argument 'obj' might be null - - diff --git a/java/java-tests/testData/inspection/dataFlow/ForEachNPE/expected.xml b/java/java-tests/testData/inspection/dataFlow/ForEachNPE/expected.xml deleted file mode 100644 index 886b8c182bcf..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/ForEachNPE/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 4 - Dereference of 'path' may produce NullPointerException - - diff --git a/java/java-tests/testData/inspection/dataFlow/ForEachNPE/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ForEachNPE/src/Test.java deleted file mode 100644 index 1aca902d140e..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/ForEachNPE/src/Test.java +++ /dev/null @@ -1,8 +0,0 @@ -public class Test { - public String foo(String[] path) { - if (path != null) return null; - for (String p: path) {} - - return ""; - } -} diff --git a/java/java-tests/testData/inspection/dataFlow/ForeachFlow/expected.xml b/java/java-tests/testData/inspection/dataFlow/ForeachFlow/expected.xml deleted file mode 100644 index ec272abeaa3a..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/ForeachFlow/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/GenericInstanceof/expected.xml b/java/java-tests/testData/inspection/dataFlow/GenericInstanceof/expected.xml deleted file mode 100644 index cf475bb1c559..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/GenericInstanceof/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - GenericInstanceof.java - 8 - Condition is always true - - - diff --git a/java/java-tests/testData/inspection/dataFlow/GenericInstanceof/src/GenericInstanceof.java b/java/java-tests/testData/inspection/dataFlow/GenericInstanceof/src/GenericInstanceof.java deleted file mode 100644 index 69cf77793dfe..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/GenericInstanceof/src/GenericInstanceof.java +++ /dev/null @@ -1,12 +0,0 @@ -class Generic { - Generic() {} -} - -class Test { - void foo () { - Generic g = new Generic (); - if (g instanceof Generic) { - return; - } - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV10489/expected.xml b/java/java-tests/testData/inspection/dataFlow/IDEADEV10489/expected.xml deleted file mode 100644 index 1a3ee80fe7bd..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV10489/expected.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - IDEADEV10489.java - 10 - Method invocation 'length' may produce NullPointerException - - - IDEADEV10489.java - 8 - Method invocation 'length' may produce NullPointerException - - \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV13153/expected.xml b/java/java-tests/testData/inspection/dataFlow/IDEADEV13153/expected.xml deleted file mode 100644 index 808f05cfd9d2..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV13153/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Npe.java - 9 - Condition 'foo != null' is always 'true' - - diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV13156/expected.xml b/java/java-tests/testData/inspection/dataFlow/IDEADEV13156/expected.xml deleted file mode 100644 index c63c9258595e..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV13156/expected.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV15583/expected.xml b/java/java-tests/testData/inspection/dataFlow/IDEADEV15583/expected.xml deleted file mode 100644 index 7de6f877c769..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV15583/expected.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - Npe.java - 14 - 'length' may produce 'NullPointerException' - - - Npe.java - 18 - 'length' may produce 'NullPointerException' - - - Npe.java - 27 - 'length' may produce 'NullPointerException' - - diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV1575/expected.xml b/java/java-tests/testData/inspection/dataFlow/IDEADEV1575/expected.xml deleted file mode 100644 index e1415fb608f4..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV1575/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 4 - Condition 'test' at the left side is always 'true' - - \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV1575/src/Test.java b/java/java-tests/testData/inspection/dataFlow/IDEADEV1575/src/Test.java deleted file mode 100644 index 335fe0978b12..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV1575/src/Test.java +++ /dev/null @@ -1,6 +0,0 @@ -class TestGenericsInstanceof { - public void foo(Object o) { - boolean test = true; - test &= o.hashCode() > 3; - } -} diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV2605/expected.xml b/java/java-tests/testData/inspection/dataFlow/IDEADEV2605/expected.xml deleted file mode 100644 index a3e736e01718..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV2605/expected.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - AndAssign.java - 19 - Condition is always true - - - AndAssign.java - 26 - Condition is always false - - - AndAssign.java - 33 - Condition is always false - - - AndAssign.java - 40 - Condition is always false - - - AndAssign.java - 47 - Condition is always true - - - AndAssign.java - 54 - Condition is always true - - - AndAssign.java - 61 - Condition is always true - - - AndAssign.java - 68 - Condition is always false - - - - - - AndAssign.java - 17 - left always true - - - AndAssign.java - 24 - left always true - - - AndAssign.java - 31 - left always false - - - AndAssign.java - 38 - left always false - - - AndAssign.java - 45 - left always true - - - AndAssign.java - 52 - left always true - - - AndAssign.java - 59 - left always false - - - AndAssign.java - 66 - left always false - - diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV2605/src/AndAssign.java b/java/java-tests/testData/inspection/dataFlow/IDEADEV2605/src/AndAssign.java deleted file mode 100644 index 99f8c45540a9..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV2605/src/AndAssign.java +++ /dev/null @@ -1,72 +0,0 @@ -public class AndAssign { - public void foo(boolean result, Object acc) { - result &= verify(result ? acc : null); - } - - public boolean verify(Object o) { - System.out.println(o); - return true; - } - - public void positives() { - boolean t = true; - boolean f = false; - boolean r; - - r = t; - r &= t; // Always true - - if (r) { // Always true - System.out.println("foo"); - } - - r = t; - r &= f; // Always true - - if (r) { // Always false - System.out.println("foo"); - } - - r = f; - r &= t; // Always false - - if (r) { // Always false - System.out.println("foo"); - } - - r = f; - r &= f; // Always false - - if (r) { // Always false - System.out.println("foo"); - } - - r = t; - r |= t // Always true - - if (r) { // Always true - System.out.println("foo"); - } - - r = t; - r |= f // Always true - - if (r) { // Always true - System.out.println("foo"); - } - - r = f; - r |= t // Always false - - if (r) { // Always true - System.out.println("foo"); - } - - r = f; - r |= f // Always false - - if (r) { // Always false - System.out.println("foo"); - } - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV74518/expected.xml b/java/java-tests/testData/inspection/dataFlow/IDEADEV74518/expected.xml deleted file mode 100644 index 03896ee5835d..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV74518/expected.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - NoWarnings.java - 9 - Constant conditions & exceptions - Condition <code>i == 1</code> is always <code>true</code> when reached - - - diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV74518_2/expected.xml b/java/java-tests/testData/inspection/dataFlow/IDEADEV74518_2/expected.xml deleted file mode 100644 index ec272abeaa3a..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV74518_2/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV77819/expected.xml b/java/java-tests/testData/inspection/dataFlow/IDEADEV77819/expected.xml deleted file mode 100644 index ec272abeaa3a..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV77819/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV78370/expected.xml b/java/java-tests/testData/inspection/dataFlow/IDEADEV78370/expected.xml deleted file mode 100644 index ec272abeaa3a..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV78370/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/Instanceof/expected.xml b/java/java-tests/testData/inspection/dataFlow/Instanceof/expected.xml deleted file mode 100644 index 8097f746f86b..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/Instanceof/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - Foo.java - 10 - Condition 'o instanceof B' is always false - - - diff --git a/java/java-tests/testData/inspection/dataFlow/Instanceof/src/Foo.java b/java/java-tests/testData/inspection/dataFlow/Instanceof/src/Foo.java deleted file mode 100644 index 01617032d865..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/Instanceof/src/Foo.java +++ /dev/null @@ -1,14 +0,0 @@ -class A { -} - - -class B extends A { -} - -class C { - void foo(Object o) { - if (o instanceof A || o instanceof B) { - System.out.println("Something"); - } - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/NotNullArray/expected.xml b/java/java-tests/testData/inspection/dataFlow/NotNullArray/expected.xml deleted file mode 100644 index 796a315e49f5..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NotNullArray/expected.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/java/java-tests/testData/inspection/dataFlow/NotNullLocalVariable/expected.xml b/java/java-tests/testData/inspection/dataFlow/NotNullLocalVariable/expected.xml deleted file mode 100644 index 580a889dbfd6..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NotNullLocalVariable/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/NotNullable/expected.xml b/java/java-tests/testData/inspection/dataFlow/NotNullable/expected.xml deleted file mode 100644 index 38c85fc6c3f4..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NotNullable/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - Npe.java - 10 - Condition 'o == null' is always false - - - diff --git a/java/java-tests/testData/inspection/dataFlow/NotNullableParameter/expected.xml b/java/java-tests/testData/inspection/dataFlow/NotNullableParameter/expected.xml deleted file mode 100644 index d199ae1e6ece..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NotNullableParameter/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - Npe.java - 9 - Passing null argument to parameter annotated as @NotNull - - - diff --git a/java/java-tests/testData/inspection/dataFlow/NotNullableParameter/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/NotNullableParameter/src/Npe.java deleted file mode 100644 index d8a2a6f7b43b..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NotNullableParameter/src/Npe.java +++ /dev/null @@ -1,11 +0,0 @@ -import org.jetbrains.annotations.NotNull; - -public class Npe { - Object foo(@NotNull Object o) { - return o; - } - - void bar() { - Object o = foo(null); // null should not be passed here. - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/NotNullableParameter2/expected.xml b/java/java-tests/testData/inspection/dataFlow/NotNullableParameter2/expected.xml deleted file mode 100644 index cea65e734283..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NotNullableParameter2/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - Npe.java - 5 - Condition 'o == null' is always false - - - diff --git a/java/java-tests/testData/inspection/dataFlow/Nullable/expected.xml b/java/java-tests/testData/inspection/dataFlow/Nullable/expected.xml deleted file mode 100644 index e924534c7a23..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/Nullable/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Npe.java - 14 - Argument 'nullable()' might be null - - diff --git a/java/java-tests/testData/inspection/dataFlow/NullableLocalVariable/expected.xml b/java/java-tests/testData/inspection/dataFlow/NullableLocalVariable/expected.xml deleted file mode 100644 index b22b987d9376..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NullableLocalVariable/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Npe.java - 7 - 'hashCode' may produce NullPointerException - - diff --git a/java/java-tests/testData/inspection/dataFlow/NullableProblemThroughCast/expected.xml b/java/java-tests/testData/inspection/dataFlow/NullableProblemThroughCast/expected.xml deleted file mode 100644 index 775cd0d9be38..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NullableProblemThroughCast/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Npe.java - 6 - Method invocation <code>bar</code> may produce <code>NullPointerException</code> - - diff --git a/java/java-tests/testData/inspection/dataFlow/NullableReturn/expected.xml b/java/java-tests/testData/inspection/dataFlow/NullableReturn/expected.xml deleted file mode 100644 index 2dd3ea057cc9..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NullableReturn/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Npe.java - 6 - null is returned - - diff --git a/java/java-tests/testData/inspection/dataFlow/NullableReturn1/expected.xml b/java/java-tests/testData/inspection/dataFlow/NullableReturn1/expected.xml deleted file mode 100644 index 5c458eacbf32..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NullableReturn1/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 8 - Expression 'res' might evaluate to null but is returned by the method declared as @NotNull - - diff --git a/java/java-tests/testData/inspection/dataFlow/NullableThroughCast/expected.xml b/java/java-tests/testData/inspection/dataFlow/NullableThroughCast/expected.xml deleted file mode 100644 index da3af5641f79..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NullableThroughCast/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Npe.java - 14 - Argument '(Object)nullable()' might be null - - diff --git a/java/java-tests/testData/inspection/dataFlow/NullableThroughVariable/expected.xml b/java/java-tests/testData/inspection/dataFlow/NullableThroughVariable/expected.xml deleted file mode 100644 index 9837614241a4..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NullableThroughVariable/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Npe.java - 15 - Argument 'o' might be null - - diff --git a/java/java-tests/testData/inspection/dataFlow/NullableThroughVariableShouldNotBeReported/expected.xml b/java/java-tests/testData/inspection/dataFlow/NullableThroughVariableShouldNotBeReported/expected.xml deleted file mode 100644 index c63c9258595e..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/NullableThroughVariableShouldNotBeReported/expected.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/java/java-tests/testData/inspection/dataFlow/PlusOnStrings/expected.xml b/java/java-tests/testData/inspection/dataFlow/PlusOnStrings/expected.xml deleted file mode 100644 index 05a97ff33c5b..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/PlusOnStrings/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 6 - Condition 'c == null' is always false - - diff --git a/java/java-tests/testData/inspection/dataFlow/RegressionByPti/expected.xml b/java/java-tests/testData/inspection/dataFlow/RegressionByPti/expected.xml deleted file mode 100644 index ec272abeaa3a..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/RegressionByPti/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/SCR13626/expected.xml b/java/java-tests/testData/inspection/dataFlow/SCR13626/expected.xml deleted file mode 100644 index fe6b36dfe5e2..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SCR13626/expected.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - Test.java - 14 - Condition '!a && b' always false - - - Test.java - 14 - Condition '!a' always false - - - diff --git a/java/java-tests/testData/inspection/dataFlow/SCR13626/src/Test.java b/java/java-tests/testData/inspection/dataFlow/SCR13626/src/Test.java deleted file mode 100644 index 4617cf702bc0..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SCR13626/src/Test.java +++ /dev/null @@ -1,16 +0,0 @@ -class Test -{ -class Test -{ - public void x() - { - boolean a = false; - boolean b = true; - - do - { - a = true; - } - while( !a && b ); - } -}} diff --git a/java/java-tests/testData/inspection/dataFlow/SCR13871/expected.xml b/java/java-tests/testData/inspection/dataFlow/SCR13871/expected.xml deleted file mode 100644 index 9ac879d78616..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SCR13871/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/SCR14314/expected.xml b/java/java-tests/testData/inspection/dataFlow/SCR14314/expected.xml deleted file mode 100644 index 5daf8020027b..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SCR14314/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - Finally.java - 9 - Method invocation 'hashCode' may produce NullPointerException - - - diff --git a/java/java-tests/testData/inspection/dataFlow/SCR14819/expected.xml b/java/java-tests/testData/inspection/dataFlow/SCR14819/expected.xml deleted file mode 100644 index 807c9ca842e0..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SCR14819/expected.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Test.java - 3 - Condition 't instanceof Test' is redundant - - - Test.java - 9 - Condition 't instanceof Test' always true - - - Test.java - 14 - Condition 'foo(null) instanceof Test' is redundant - - - diff --git a/java/java-tests/testData/inspection/dataFlow/SCR14819/src/Test.java b/java/java-tests/testData/inspection/dataFlow/SCR14819/src/Test.java deleted file mode 100644 index daf1450dec9f..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SCR14819/src/Test.java +++ /dev/null @@ -1,17 +0,0 @@ -public class Test { - public Test foo(Test t) { - if (t instanceof Test) { // redundant instanceof error here. t can be null - foo(null); - } - } - public Object bar(Test t) { - if (t == null) return; - if (t instanceof Test) { // always true error here. t can't be null - foo(null); - } - - if (bar(null) instanceof Test) return null; // no error here. - if (foo(null) instanceof Test) return null; // redundant instanceof error here. foo(null) can be null - return null; - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/SCR15162/expected.xml b/java/java-tests/testData/inspection/dataFlow/SCR15162/expected.xml deleted file mode 100644 index 2dfb4c2c0857..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SCR15162/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - NullTest.java - 6 - Dereference of 't' will produce NullPointerException - - - diff --git a/java/java-tests/testData/inspection/dataFlow/SCR15162/src/NullTest.java b/java/java-tests/testData/inspection/dataFlow/SCR15162/src/NullTest.java deleted file mode 100644 index c598e755c32b..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SCR15162/src/NullTest.java +++ /dev/null @@ -1,9 +0,0 @@ -public class NullTest { - int m; - void f() {}; - public void x() { - NullTest t = null; - t.m = 12; - t.f(); - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/SCR15406/expected.xml b/java/java-tests/testData/inspection/dataFlow/SCR15406/expected.xml deleted file mode 100644 index ec272abeaa3a..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SCR15406/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/SCR18186/expected.xml b/java/java-tests/testData/inspection/dataFlow/SCR18186/expected.xml deleted file mode 100644 index c63c9258595e..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SCR18186/expected.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/java/java-tests/testData/inspection/dataFlow/SCR39950/expected.xml b/java/java-tests/testData/inspection/dataFlow/SCR39950/expected.xml deleted file mode 100644 index 0953dd7d08c6..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SCR39950/expected.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/StrangeArrayIndexOutOfBounds/expected.xml b/java/java-tests/testData/inspection/dataFlow/StrangeArrayIndexOutOfBounds/expected.xml deleted file mode 100644 index 0953dd7d08c6..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/StrangeArrayIndexOutOfBounds/expected.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/SwitchEnumCases/expected.xml b/java/java-tests/testData/inspection/dataFlow/SwitchEnumCases/expected.xml deleted file mode 100644 index 8e9db2da5b12..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SwitchEnumCases/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 72 - Method invocation <code>length</code> may produce <code>NullPointerException</code> - - diff --git a/java/java-tests/testData/inspection/dataFlow/SwitchQualifierProducesNPE/expected.xml b/java/java-tests/testData/inspection/dataFlow/SwitchQualifierProducesNPE/expected.xml deleted file mode 100644 index 75d75da7fe02..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/SwitchQualifierProducesNPE/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 10 - Dereference of 'getE()' may produce 'NullPointerException' - - diff --git a/java/java-tests/testData/inspection/dataFlow/YoleBug/expected.xml b/java/java-tests/testData/inspection/dataFlow/YoleBug/expected.xml deleted file mode 100644 index 41136918e68d..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/YoleBug/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 9 - 'foo() != null' is always true - - diff --git a/java/java-tests/testData/inspection/dataFlow/AlexBug/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/AlexBug.java similarity index 88% rename from java/java-tests/testData/inspection/dataFlow/AlexBug/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/AlexBug.java index e397de3faf8a..d16d1bce8848 100644 --- a/java/java-tests/testData/inspection/dataFlow/AlexBug/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/AlexBug.java @@ -1,4 +1,4 @@ -public class Test { +class Test { public Test(String s) { } public Test foo(String path) { diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/AndEq.java b/java/java-tests/testData/inspection/dataFlow/ancient/AndEq.java new file mode 100644 index 000000000000..fce099daa2c1 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/AndEq.java @@ -0,0 +1,8 @@ +class Test { + public void foo(boolean x, boolean y, boolean z) { + boolean r = true; + r &= x; + r &= y; + r &= z; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/ArrayAccessDoesntCancelAnalysis/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/ArrayAccessDoesntCancelAnalysis.java similarity index 58% rename from java/java-tests/testData/inspection/dataFlow/ArrayAccessDoesntCancelAnalysis/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/ArrayAccessDoesntCancelAnalysis.java index 6b384e2dac3a..e9ad56167453 100644 --- a/java/java-tests/testData/inspection/dataFlow/ArrayAccessDoesntCancelAnalysis/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/ArrayAccessDoesntCancelAnalysis.java @@ -1,11 +1,11 @@ import org.jetbrains.annotations.*; -public class Test { +class Test { private static void foo(@NotNull String smth) { } public static void main(String[] args) { String s = args[0]; - foo(null); + foo(null); } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/ArrayAccessNPE.java b/java/java-tests/testData/inspection/dataFlow/ancient/ArrayAccessNPE.java new file mode 100644 index 000000000000..808af4e22722 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/ArrayAccessNPE.java @@ -0,0 +1,9 @@ +class Test { + public String foo(String[] path) { + if (path != null) return null; + + String p = path[0]; + + return ""; + } +} diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/Autoboxing.java b/java/java-tests/testData/inspection/dataFlow/ancient/Autoboxing.java new file mode 100644 index 000000000000..e06a5ed26252 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/Autoboxing.java @@ -0,0 +1,119 @@ +class Auto { + void f(int k) { + Integer i = 0; + Integer j=0; + if (i==j) { + + } + Integer j2 = 1; + if (i==j2) { + + } + if (i==0) { + + } + if (i==1) { + + } + + ////////////////// + Integer big1 = 333; + Integer big2= 333; + if (big1==333) { + } + if (333 == big2) { + } + if (333==333) { + } + if (big1==big2) { + + } + int prim = big1; + if (prim==big2) { + + } + + if (big1 == 0) { + + } + if (big1 == 332) { + + } + + Character c = 1234; + if (c==1234) { + + } + if (c==124) { + + } + c = 1; + if (c==1234) { + + } + if (c==c) { + + } + Character c2 = 1; + if (c==c2) { + + } + } +} +class aaa { + int a; + int b; + void canBeStatic(int x) { + for (int i=0;i<10;i++) { + a = i; + } + + a = 4; + + if (a == 5) { + } + } + + + void f(int p) { + { + int i = 1; + Integer i1 = i; + Integer i2 = i; + if (i1 == i2) { + + } + } + { + int i = p; + Integer i1 = i; + Integer i2 = i; + if (i1 == i2) { + + } + } + } + +} +class UsesDoubleAndFloat { + void f() { + double dd = 10.0; + Double r = dd; + Double r1 = dd; + System.out.println("(r==r1) is "+(r==r1)); // should report?? + + Double r2 = 10.0; + Double r3 = 10.0; + System.out.println("(r2==r3) is "+(r2==r3)); + + float fd = 10.0f; + Float fr = fd; + Float fr1 = fd; + System.out.println("(r==r1) is "+(fr==fr1)); // should report?? + + Float fr2 = 10.0f; + Float fr3 = 10.0f; + System.out.println("(r2==r3) is "+(fr2==fr3)); + + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/BoxingNaN.java b/java/java-tests/testData/inspection/dataFlow/ancient/BoxingNaN.java new file mode 100644 index 000000000000..4cc1cf403017 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/BoxingNaN.java @@ -0,0 +1,22 @@ +class DoubleTrouble { + public static void main(String[] args) { + { + Double a = Double.NaN; + double b = a;//Double.NaN; + if (b == Double.NaN) { + ; + } + } + + if (Float.NaN != Float.NaN) { + + } + + { + double a = Double.NaN; + double b = Double.NaN; + if (Double.NaN == a) {} + if (b == a) {} + } + } +} diff --git a/java/java-tests/testData/inspection/dataFlow/caseAndNpe/src/CaseAndNpe.java b/java/java-tests/testData/inspection/dataFlow/ancient/CaseAndNpe.java similarity index 72% rename from java/java-tests/testData/inspection/dataFlow/caseAndNpe/src/CaseAndNpe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/CaseAndNpe.java index dbb76080639f..2185aa0d1099 100644 --- a/java/java-tests/testData/inspection/dataFlow/caseAndNpe/src/CaseAndNpe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/CaseAndNpe.java @@ -15,7 +15,7 @@ public class aaa { o.equals(o); } - o.equals(o); + o.equals(o); if (i == 3) { System.out.println(""); @@ -37,15 +37,15 @@ public class aaa { //System.exit(0); switch(i) { - case 1: System.out.println("1 not reachable"); break; - case 2: System.out.println("2 not reachable"); break; + case 1: System.out.println("1 not reachable"); break; + case 2: System.out.println("2 not reachable"); break; case 6: System.out.println("6 reachable"); break; case 5: System.out.println("5 reachable"); break; default: System.out.println("Default not reachable"); break; } int j = 0; - for (; i < 5; i++, j++) {} + for (; i < 5; i++, j++) {} } void canBeStatic() { @@ -57,7 +57,7 @@ public class aaa { } } - for (int i = 0; i < null; i++) { + for (int i = 0; i < null; i++) { a = i; this.a = i; } @@ -68,8 +68,8 @@ public class aaa { a = 4; } - if (a != null && a instanceof aaa) { - if (true) { + if (a != null && a instanceof aaa) { + if (true) { //a = new aaa(); } } diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/CatchParameterCantBeNull.java b/java/java-tests/testData/inspection/dataFlow/ancient/CatchParameterCantBeNull.java new file mode 100644 index 000000000000..41256e4bb9b4 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/CatchParameterCantBeNull.java @@ -0,0 +1,16 @@ +import java.io.*; + +class Foo { + public void foo() { + try { + throw new EOFException("aaa"); + } catch (Exception e) { + if (e == null) { + System.out.println("Can't be here."); + } + if (e instanceof FileNotFoundException) { + System.out.println("Can't be here."); + } + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/cce/src/Cce.java b/java/java-tests/testData/inspection/dataFlow/ancient/Cce.java similarity index 65% rename from java/java-tests/testData/inspection/dataFlow/cce/src/Cce.java rename to java/java-tests/testData/inspection/dataFlow/ancient/Cce.java index a8bc96ef8b40..66ba02f3beac 100644 --- a/java/java-tests/testData/inspection/dataFlow/cce/src/Cce.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/Cce.java @@ -9,7 +9,7 @@ public class Cce { Object o = getObject(); if (o instanceof A) { - B b = (B) o; + B b = (B) o; } } diff --git a/java/java-tests/testData/inspection/dataFlow/CheckedExceptionDominance/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/CheckedExceptionDominance.java similarity index 95% rename from java/java-tests/testData/inspection/dataFlow/CheckedExceptionDominance/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/CheckedExceptionDominance.java index 4f0586d30a96..7841e9dae79f 100644 --- a/java/java-tests/testData/inspection/dataFlow/CheckedExceptionDominance/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/CheckedExceptionDominance.java @@ -1,3 +1,5 @@ +import java.util.Random; + public class CheckedExceptionDominance { private static class CheckedException extends Exception {} diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/ConditionFalseAndNPE.java b/java/java-tests/testData/inspection/dataFlow/ancient/ConditionFalseAndNPE.java new file mode 100644 index 000000000000..9c7e1518e9f8 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/ConditionFalseAndNPE.java @@ -0,0 +1,14 @@ +import org.jetbrains.annotations.Nullable; +class Foo { + @Nullable Foo foo() { + return null; + } + + public void bar() { + if (foo() != null && + foo().foo() != null && + foo().foo().foo() != null) { + + } + } +} diff --git a/java/java-tests/testData/inspection/dataFlow/constantExpr/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/ConstantExpr.java similarity index 57% rename from java/java-tests/testData/inspection/dataFlow/constantExpr/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/ConstantExpr.java index 4ec920579cdb..9e18928457b6 100644 --- a/java/java-tests/testData/inspection/dataFlow/constantExpr/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/ConstantExpr.java @@ -1,9 +1,9 @@ -public class Test { +class Test { private static final int CONST = 3/2 + 0*1; public void foo() { int i = 0; int j = 2 + (CONST) - 6/2; - if (i == j) { + if (i == j) { } } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/ConstantsDifferentTypes.java b/java/java-tests/testData/inspection/dataFlow/ancient/ConstantsDifferentTypes.java new file mode 100644 index 000000000000..75de20a75878 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/ConstantsDifferentTypes.java @@ -0,0 +1,19 @@ +class Test { + void f() { + Long L = 5L; + if (L == 5) { + ; + } + + long l = 0; + if (l == 0f) { + ; + } + + char c = 1; + if (c == 1L) { + ; + } + + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/exceptionCFG/src/ExceptionCFG.java b/java/java-tests/testData/inspection/dataFlow/ancient/ExceptionCFG.java similarity index 100% rename from java/java-tests/testData/inspection/dataFlow/exceptionCFG/src/ExceptionCFG.java rename to java/java-tests/testData/inspection/dataFlow/ancient/ExceptionCFG.java diff --git a/java/java-tests/testData/inspection/dataFlow/FieldsFlashing/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/FieldsFlashing.java similarity index 92% rename from java/java-tests/testData/inspection/dataFlow/FieldsFlashing/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/FieldsFlashing.java index 943d9de9269f..888dd3b4b20a 100644 --- a/java/java-tests/testData/inspection/dataFlow/FieldsFlashing/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/FieldsFlashing.java @@ -1,6 +1,6 @@ import org.jetbrains.annotations.*; -public class TestNullableIntervening // See http://www.jetbrains.net/jira/browse/IDEA-2845 +class TestNullableIntervening { @Nullable Object obj; @@ -15,7 +15,7 @@ public class TestNullableIntervening // See http://www.jetbrains.net/jira/brow if (obj != null) { // Method intervening, might change obj; should have warning (OK) obj = foo(); - notnull(obj); + notnull(obj); } } diff --git a/java/java-tests/testData/inspection/dataFlow/finalFields/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/FinalFields.java similarity index 91% rename from java/java-tests/testData/inspection/dataFlow/finalFields/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/FinalFields.java index 5cc23723676b..089fa737b82a 100644 --- a/java/java-tests/testData/inspection/dataFlow/finalFields/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/FinalFields.java @@ -1,6 +1,6 @@ import org.jetbrains.annotations.Nullable; -public class Test { +class Test { @Nullable public final String o; public Test(String q) { o = q; } diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/ForEachNPE.java b/java/java-tests/testData/inspection/dataFlow/ancient/ForEachNPE.java new file mode 100644 index 000000000000..f21417d571f6 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/ForEachNPE.java @@ -0,0 +1,8 @@ +class Test { + public String foo(String[] path) { + if (path != null) return null; + for (String p: path) {} + + return ""; + } +} diff --git a/java/java-tests/testData/inspection/dataFlow/ForeachFlow/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/ForeachFlow.java similarity index 93% rename from java/java-tests/testData/inspection/dataFlow/ForeachFlow/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/ForeachFlow.java index 90a54c34fdf9..0b3aa2412596 100644 --- a/java/java-tests/testData/inspection/dataFlow/ForeachFlow/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/ForeachFlow.java @@ -1,4 +1,4 @@ -public class Npe { +class Npe { Object foo(Object[] objs) { boolean skip = true; for (Object o : objs) { diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/GenericInstanceof.java b/java/java-tests/testData/inspection/dataFlow/ancient/GenericInstanceof.java new file mode 100644 index 000000000000..870c1b90d141 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/GenericInstanceof.java @@ -0,0 +1,12 @@ +class Generic { + Generic() {} +} + +class Test { + void foo () { + Generic g = new Generic (); + if (g instanceof Generic) { + return; + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV10489/src/IDEADEV10489.java b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV10489.java similarity index 61% rename from java/java-tests/testData/inspection/dataFlow/IDEADEV10489/src/IDEADEV10489.java rename to java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV10489.java index ee41e588dd3e..667e0afe1d0d 100644 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV10489/src/IDEADEV10489.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV10489.java @@ -5,9 +5,9 @@ class IDEADEV10489 { String s = getS(); if (s != null) s.length(); if (foo()) { - int[] i1 = new int [s.length()]; + int[] i1 = new int [s.length()]; } else if (foo()) { - int[] i2 = new int [] {s.length()}; + int[] i2 = new int [] {s.length()}; } else if (foo()) { int[][] i3 = new int [(s = "").length()][s.length()]; } else{ diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV13153/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV13153.java similarity index 61% rename from java/java-tests/testData/inspection/dataFlow/IDEADEV13153/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV13153.java index 2c91be5c9400..b299aa83f9a7 100644 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV13153/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV13153.java @@ -6,7 +6,7 @@ class Test { void foo() { String[] data = new String[] {"abs", "def"}; for (@NotNull String foo: data) { - assert foo != null; // Condition always true + assert foo != null; // Condition always true } } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV13156/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV13156.java similarity index 90% rename from java/java-tests/testData/inspection/dataFlow/IDEADEV13156/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV13156.java index f965875f6fd8..9bbf901549fd 100644 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV13156/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV13156.java @@ -1,4 +1,5 @@ import org.jetbrains.annotations.*; +import java.io.IOException; class Foo { public void x() throws IOException { diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV15583/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV15583.java similarity index 56% rename from java/java-tests/testData/inspection/dataFlow/IDEADEV15583/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV15583.java index c21366281fa4..7a4e35d5db50 100644 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV15583/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV15583.java @@ -11,11 +11,11 @@ class Test { void test(Collection foos) { Test t = new Test(); - final int i = t.getString("foo").length(); + final int i = t.getString("foo").length(); System.out.println("i = " + i); for (String foo : foos) { - final int j = t.getString(foo).length(); + final int j = t.getString(foo).length(); System.out.println("i = " + j); } } @@ -24,7 +24,7 @@ class Test { Test t = new Test(); for (Iterator iterator = foos.iterator(); iterator.hasNext();) { - final int i = getString(iterator.next()).length(); + final int i = getString(iterator.next()).length(); System.out.println("i = " + i); } } diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV1575.java b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV1575.java new file mode 100644 index 000000000000..13a81385eb47 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV1575.java @@ -0,0 +1,6 @@ +class TestGenericsInstanceof { + public void foo(Object o) { + boolean test = true; + test &= o.hashCode() > 3; + } +} diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV2605.java b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV2605.java new file mode 100644 index 000000000000..7339d4c5f677 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV2605.java @@ -0,0 +1,72 @@ +public class AndAssign { + public void foo(boolean result, Object acc) { + result &= verify(result ? acc : null); + } + + public boolean verify(Object o) { + System.out.println(o); + return true; + } + + public void positives() { + boolean t = true; + boolean f = false; + boolean r; + + r = t; + r &= t; // Always true + + if (r) { // Always true + System.out.println("foo"); + } + + r = t; + r &= f; // Always true + + if (r) { // Always false + System.out.println("foo"); + } + + r = f; + r &= t; // Always false + + if (r) { // Always false + System.out.println("foo"); + } + + r = f; + r &= f; // Always false + + if (r) { // Always false + System.out.println("foo"); + } + + r = t; + r |= t // Always true + + if (r) { // Always true + System.out.println("foo"); + } + + r = t; + r |= f // Always true + + if (r) { // Always true + System.out.println("foo"); + } + + r = f; + r |= t // Always false + + if (r) { // Always true + System.out.println("foo"); + } + + r = f; + r |= f // Always false + + if (r) { // Always false + System.out.println("foo"); + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV74518/src/NoWarnings.java b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV74518.java similarity index 68% rename from java/java-tests/testData/inspection/dataFlow/IDEADEV74518/src/NoWarnings.java rename to java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV74518.java index 68e4c52e32c5..770e44cf289f 100644 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV74518/src/NoWarnings.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV74518.java @@ -1,12 +1,12 @@ import java.util.*; -public class NoWarnings { +class NoWarnings { public void f() { int i = 1; boolean b = true; while (true) { - if (b && i == 1) { + if (b && i == 1) { b = false; } else { diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV74518_2/src/Sample.java b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV74518_2.java similarity index 88% rename from java/java-tests/testData/inspection/dataFlow/IDEADEV74518_2/src/Sample.java rename to java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV74518_2.java index 33f8f7f68ab4..956880f47990 100644 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV74518_2/src/Sample.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV74518_2.java @@ -1,4 +1,4 @@ -public abstract class NoWarnings { +abstract class NoWarnings { public void f() { boolean A = false; boolean B = false; diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV77819/src/NoWarnings.java b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV77819.java similarity index 90% rename from java/java-tests/testData/inspection/dataFlow/IDEADEV77819/src/NoWarnings.java rename to java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV77819.java index 56b1576cc64b..d4af7c642b75 100644 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV77819/src/NoWarnings.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV77819.java @@ -1,6 +1,6 @@ import org.jetbrains.annotations.*; -public class Test { +class Test { public @Nullable String foo; public void test() { diff --git a/java/java-tests/testData/inspection/dataFlow/IDEADEV78370/src/NoWarnings.java b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV78370.java similarity index 86% rename from java/java-tests/testData/inspection/dataFlow/IDEADEV78370/src/NoWarnings.java rename to java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV78370.java index ace2d06e1df9..20e8d040a737 100644 --- a/java/java-tests/testData/inspection/dataFlow/IDEADEV78370/src/NoWarnings.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/IDEADEV78370.java @@ -1,6 +1,6 @@ import org.jetbrains.annotations.Nullable; -public class NoWarnings { +class NoWarnings { int f(@Nullable String value) { value = value == null ? "" : value; return value.hashCode(); diff --git a/java/java-tests/testData/inspection/dataFlow/inst/src/Inst.java b/java/java-tests/testData/inspection/dataFlow/ancient/Inst.java similarity index 73% rename from java/java-tests/testData/inspection/dataFlow/inst/src/Inst.java rename to java/java-tests/testData/inspection/dataFlow/ancient/Inst.java index 255b760cf345..09841d30f823 100644 --- a/java/java-tests/testData/inspection/dataFlow/inst/src/Inst.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/Inst.java @@ -13,7 +13,7 @@ public class Inst { if (a instanceof B) { A aa =(A) a; - if (a instanceof A) { + if (a instanceof A) { System.out.println("HeHe"); } System.out.println(aa); @@ -22,7 +22,7 @@ public class Inst { public void x1() { Object a = new Object(); - if (a instanceof B) { + if (a instanceof B) { A aa =(A) a; if (a instanceof A) { System.out.println("HeHe"); diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/Instanceof.java b/java/java-tests/testData/inspection/dataFlow/ancient/Instanceof.java new file mode 100644 index 000000000000..a8ef05d4b6e4 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/Instanceof.java @@ -0,0 +1,14 @@ +class A { +} + + +class B extends A { +} + +class C { + void foo(Object o) { + if (o instanceof A || o instanceof B) { + System.out.println("Something"); + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/NotNullArray/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/NotNullArray.java similarity index 90% rename from java/java-tests/testData/inspection/dataFlow/NotNullArray/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/NotNullArray.java index a9671554c417..f00569e06fbd 100644 --- a/java/java-tests/testData/inspection/dataFlow/NotNullArray/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NotNullArray.java @@ -1,7 +1,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.NotNull; -public class TestNPEafterNew { +class TestNPEafterNew { @Nullable Object[] arr; void test(@NotNull Object[] notnull) { arr = notnull; diff --git a/java/java-tests/testData/inspection/dataFlow/NotNullLocalVariable/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/NotNullLocalVariable.java similarity index 91% rename from java/java-tests/testData/inspection/dataFlow/NotNullLocalVariable/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/NotNullLocalVariable.java index c933f5baead4..d1dd72d6ace2 100644 --- a/java/java-tests/testData/inspection/dataFlow/NotNullLocalVariable/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NotNullLocalVariable.java @@ -1,7 +1,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class Npe { +class Npe { void bar() { final @NotNull Object o = call(); if (o == null) {} diff --git a/java/java-tests/testData/inspection/dataFlow/NotNullable/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/NotNullable.java similarity index 52% rename from java/java-tests/testData/inspection/dataFlow/NotNullable/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/NotNullable.java index 0553b5309fcf..8a60195a2d63 100644 --- a/java/java-tests/testData/inspection/dataFlow/NotNullable/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NotNullable.java @@ -1,12 +1,12 @@ import org.jetbrains.annotations.NotNull; -public class Npe { +class Npe { @NotNull Object foo() { return new Object(); } void bar() { Object o = foo(); - if (o == null) System.out.println("Can't be"); + if (o == null) System.out.println("Can't be"); } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/NotNullableParameter.java b/java/java-tests/testData/inspection/dataFlow/ancient/NotNullableParameter.java new file mode 100644 index 000000000000..48b4ffcf9ab3 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NotNullableParameter.java @@ -0,0 +1,11 @@ +import org.jetbrains.annotations.NotNull; + +class Npe { + Object foo(@NotNull Object o) { + return o; + } + + void bar() { + Object o = foo(null); // null should not be passed here. + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/NotNullableParameter2/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/NotNullableParameter2.java similarity index 57% rename from java/java-tests/testData/inspection/dataFlow/NotNullableParameter2/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/NotNullableParameter2.java index 820ac0904f32..051a0bd34cd5 100644 --- a/java/java-tests/testData/inspection/dataFlow/NotNullableParameter2/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NotNullableParameter2.java @@ -1,8 +1,8 @@ import org.jetbrains.annotations.NotNull; -public class Npe { +class Npe { Object foo(@NotNull Object o) { - if (o == null) { + if (o == null) { // Should not get there. } return o; diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/Npe1.java b/java/java-tests/testData/inspection/dataFlow/ancient/Npe1.java new file mode 100644 index 000000000000..91114130d54a --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/Npe1.java @@ -0,0 +1,9 @@ +public class Npe { + public void a(Object o) { + if (o != null) { + // Do something + } + + o.equals(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/NullableThroughCast/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/Nullable.java similarity index 60% rename from java/java-tests/testData/inspection/dataFlow/NullableThroughCast/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/Nullable.java index fbaf2ad449c5..4396d736749c 100644 --- a/java/java-tests/testData/inspection/dataFlow/NullableThroughCast/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/Nullable.java @@ -1,7 +1,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class Npe { +class Npe { Object foo(@NotNull Object o) { return o; } @@ -11,6 +11,6 @@ public class Npe { } void bar() { - Object o = foo((Object)nullable()); // null should not be passed here. + Object o = foo(nullable()); // null should not be passed here. } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/NullableField.java b/java/java-tests/testData/inspection/dataFlow/ancient/NullableField.java new file mode 100644 index 000000000000..ffd229ef111f --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NullableField.java @@ -0,0 +1,8 @@ +class Test { + public String s; + + public void foo() { + s = null; + boolean b = s.equals(s); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/NullableLocalVariable/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/NullableLocalVariable.java similarity index 60% rename from java/java-tests/testData/inspection/dataFlow/NullableLocalVariable/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/NullableLocalVariable.java index ce2328560e2c..d088a8dc4521 100644 --- a/java/java-tests/testData/inspection/dataFlow/NullableLocalVariable/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NullableLocalVariable.java @@ -1,10 +1,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class Npe { +class Npe { void bar() { final @Nullable Object o = foo(); - o.hashCode(); // NPE + o.hashCode(); // NPE } @Nullable Object foo() { diff --git a/java/java-tests/testData/inspection/dataFlow/NullableProblemThroughCast/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/NullableProblemThroughCast.java similarity index 64% rename from java/java-tests/testData/inspection/dataFlow/NullableProblemThroughCast/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/NullableProblemThroughCast.java index 5937591e0b70..45a88cf59433 100644 --- a/java/java-tests/testData/inspection/dataFlow/NullableProblemThroughCast/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NullableProblemThroughCast.java @@ -1,9 +1,9 @@ import org.jetbrains.annotations.Nullable; -public class Npe { +class Npe { void foo(@Nullable SomeInterface x) { - ((SomeInterfaceImpl)x).bar(); + ((SomeInterfaceImpl)x).bar(); } interface SomeInterface { diff --git a/java/java-tests/testData/inspection/dataFlow/NullableReturn/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/NullableReturn.java similarity index 51% rename from java/java-tests/testData/inspection/dataFlow/NullableReturn/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/NullableReturn.java index 62806a05fc38..cf79382f1b03 100644 --- a/java/java-tests/testData/inspection/dataFlow/NullableReturn/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NullableReturn.java @@ -1,8 +1,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class Npe { +class Npe { @NotNull Object foo() { - return null; + return null; } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/NullableReturn1/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/NullableReturn1.java similarity index 54% rename from java/java-tests/testData/inspection/dataFlow/NullableReturn1/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/NullableReturn1.java index 8a73cd2faac2..5936f96e8d9f 100644 --- a/java/java-tests/testData/inspection/dataFlow/NullableReturn1/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NullableReturn1.java @@ -5,6 +5,6 @@ class Test { @NotNull Object foo() { Object res; res = null; - return res; + return res; } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/Nullable/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/NullableThroughCast.java similarity index 58% rename from java/java-tests/testData/inspection/dataFlow/Nullable/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/NullableThroughCast.java index 1d7166414441..3dc4d6c1377c 100644 --- a/java/java-tests/testData/inspection/dataFlow/Nullable/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NullableThroughCast.java @@ -1,7 +1,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class Npe { +class Npe { Object foo(@NotNull Object o) { return o; } @@ -11,6 +11,6 @@ public class Npe { } void bar() { - Object o = foo(nullable()); // null should not be passed here. + Object o = foo((Object)nullable()); // null should not be passed here. } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/NullableThroughVariable/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/NullableThroughVariable.java similarity index 68% rename from java/java-tests/testData/inspection/dataFlow/NullableThroughVariable/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/NullableThroughVariable.java index 817a4c2b479d..7225110f7774 100644 --- a/java/java-tests/testData/inspection/dataFlow/NullableThroughVariable/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NullableThroughVariable.java @@ -1,7 +1,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class Npe { +class Npe { Object foo(@NotNull Object o) { return o; } @@ -12,6 +12,6 @@ public class Npe { void bar() { Object o = nullable(); - foo(o); // null should not be passed here + foo(o); // null should not be passed here } } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/NullableThroughVariableShouldNotBeReported/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/ancient/NullableThroughVariableShouldNotBeReported.java similarity index 94% rename from java/java-tests/testData/inspection/dataFlow/NullableThroughVariableShouldNotBeReported/src/Npe.java rename to java/java-tests/testData/inspection/dataFlow/ancient/NullableThroughVariableShouldNotBeReported.java index 77b1222d108e..9dea0e2bfda8 100644 --- a/java/java-tests/testData/inspection/dataFlow/NullableThroughVariableShouldNotBeReported/src/Npe.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/NullableThroughVariableShouldNotBeReported.java @@ -1,7 +1,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class Npe { +class Npe { Object foo(@NotNull Object o) { return o; } diff --git a/java/java-tests/testData/inspection/dataFlow/orBug/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/OrBug.java similarity index 86% rename from java/java-tests/testData/inspection/dataFlow/orBug/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/OrBug.java index b89e24d343e0..eece99fc2c3f 100644 --- a/java/java-tests/testData/inspection/dataFlow/orBug/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/OrBug.java @@ -1,4 +1,4 @@ -public class Test { +class Test { public boolean abc(Object o1, Object o2) { if (o1 == null || o2 == null) { return o1 == o2; diff --git a/java/java-tests/testData/inspection/dataFlow/PlusOnStrings/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/PlusOnStrings.java similarity index 57% rename from java/java-tests/testData/inspection/dataFlow/PlusOnStrings/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/PlusOnStrings.java index 59ea74ef39b6..cd485005d40b 100644 --- a/java/java-tests/testData/inspection/dataFlow/PlusOnStrings/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/PlusOnStrings.java @@ -1,9 +1,9 @@ import java.io.*; -public class Foo { +class Foo { public void foo(Object a, String b) { String c = a + b; - if (c == null) { + if (c == null) { System.out.println("Can't be!"); } } diff --git a/java/java-tests/testData/inspection/dataFlow/RegressionByPti/src/NoWarnings.java b/java/java-tests/testData/inspection/dataFlow/ancient/RegressionByPti.java similarity index 97% rename from java/java-tests/testData/inspection/dataFlow/RegressionByPti/src/NoWarnings.java rename to java/java-tests/testData/inspection/dataFlow/ancient/RegressionByPti.java index ce33c6282da4..82d0df0db92e 100644 --- a/java/java-tests/testData/inspection/dataFlow/RegressionByPti/src/NoWarnings.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/RegressionByPti.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -public class AAA { +class AAA { public static void main(String[] args) { for (int i = 0; i < args.length; i++) { diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/SCR13626.java b/java/java-tests/testData/inspection/dataFlow/ancient/SCR13626.java new file mode 100644 index 000000000000..add26df074f4 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/SCR13626.java @@ -0,0 +1,16 @@ +class Test +{ +class Test +{ + public void x() + { + boolean a = false; + boolean b = true; + + do + { + a = true; + } + while( !a && b ); + } +}} diff --git a/java/java-tests/testData/inspection/dataFlow/SCR13871/src/Aaa.java b/java/java-tests/testData/inspection/dataFlow/ancient/SCR13871.java similarity index 92% rename from java/java-tests/testData/inspection/dataFlow/SCR13871/src/Aaa.java rename to java/java-tests/testData/inspection/dataFlow/ancient/SCR13871.java index 793f5314fc66..f7b369febcd7 100644 --- a/java/java-tests/testData/inspection/dataFlow/SCR13871/src/Aaa.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/SCR13871.java @@ -1,4 +1,4 @@ -public class Aaa { +class Aaa { Object getObject() { return null; } diff --git a/java/java-tests/testData/inspection/dataFlow/SCR14314/src/Finally.java b/java/java-tests/testData/inspection/dataFlow/ancient/SCR14314.java similarity index 67% rename from java/java-tests/testData/inspection/dataFlow/SCR14314/src/Finally.java rename to java/java-tests/testData/inspection/dataFlow/ancient/SCR14314.java index 2d8b04865101..75bb75c14298 100644 --- a/java/java-tests/testData/inspection/dataFlow/SCR14314/src/Finally.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/SCR14314.java @@ -6,19 +6,19 @@ public class Finally { if (o == null) return; } finally { - System.out.println(o.hashCode()); // Error here. + System.out.println(o.hashCode()); // Error here. } System.out.println(o.hashCode()); // No error here. } - public void bar(Object o) { + public void bar(Object o) throws IOException { boolean rearrangeChildren = false; Object typePattern; try { typePattern = parseTypePattern(); } catch (FileNotFoundException followsFailure) { if (o != null) { - typePattern = followsFailure.getParsingResult(); + typePattern = followsFailure.getParsingResult(); } else { throw followsFailure; } diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/SCR14819.java b/java/java-tests/testData/inspection/dataFlow/ancient/SCR14819.java new file mode 100644 index 000000000000..0e90d33fe3a9 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/SCR14819.java @@ -0,0 +1,18 @@ +public class Test { + public Test foo(Test t) { + if (t instanceof Test) { // redundant instanceof error here. t can be null + foo(null); + } + return null; + } + public Object bar(Test t) { + if (t == null) return; + if (t instanceof Test) { // always true error here. t can't be null + foo(null); + } + + if (bar(null) instanceof Test) return null; // no error here. + if (foo(null) instanceof Test) return null; // redundant instanceof error here. foo(null) can be null + return null; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/SCR15162.java b/java/java-tests/testData/inspection/dataFlow/ancient/SCR15162.java new file mode 100644 index 000000000000..6d34620e0e55 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/SCR15162.java @@ -0,0 +1,9 @@ +class NullTest { + int m; + void f() {}; + public void x() { + NullTest t = null; + t.m = 12; + t.f(); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/SCR15406/src/CodeFlowTest.java b/java/java-tests/testData/inspection/dataFlow/ancient/SCR15406.java similarity index 95% rename from java/java-tests/testData/inspection/dataFlow/SCR15406/src/CodeFlowTest.java rename to java/java-tests/testData/inspection/dataFlow/ancient/SCR15406.java index f2953d7d90a3..b17fcab8309d 100644 --- a/java/java-tests/testData/inspection/dataFlow/SCR15406/src/CodeFlowTest.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/SCR15406.java @@ -1,6 +1,6 @@ import org.jetbrains.annotations.NotNull; -public class CodeFlowTest { +class CodeFlowTest { public static void main (String[] args) { String string; Exception exception; diff --git a/java/java-tests/testData/inspection/dataFlow/SCR18186/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/SCR18186.java similarity index 68% rename from java/java-tests/testData/inspection/dataFlow/SCR18186/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/SCR18186.java index cbea397f4f22..69299bfdce6a 100644 --- a/java/java-tests/testData/inspection/dataFlow/SCR18186/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/SCR18186.java @@ -1,10 +1,7 @@ import java.sql.*; -public class Test { +abstract class DBStore { - /** - * Lädt den Datensatz. - */ private boolean loadValues(Transaction transaction) { try { boolean res=false; @@ -58,4 +55,31 @@ public class Test { } } + void loadOrdered(ResultSet rs) {} + void loadBlobs(Transaction t) throws SQLException {} + void fillPHPK(Statement st, Transaction t) throws SQLException {} + int loadsCount; + abstract PreparedStatement stmtGetDirty(Object obj); + abstract PreparedStatement stmtGetClean(Object obj); + void handleSQLException(SQLException ex, Statement st) {} + + static class Dbg { + static void pw(Object obj) {} + } + + static abstract class DBManager { + abstract DBStore dbstore(); + abstract boolean accessCommitBug(); + static void resetThread(Statement statement) {}; + } + + static abstract class Transaction { + DBManager dbmanager; + abstract DBStore dbstore(); + abstract boolean dirty(); + } + + static class ExceptionBag extends RuntimeException { + ExceptionBag(Throwable cause) {} + } } diff --git a/java/java-tests/testData/inspection/dataFlow/SCR39950/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/SCR39950.java similarity index 100% rename from java/java-tests/testData/inspection/dataFlow/SCR39950/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/SCR39950.java diff --git a/java/java-tests/testData/inspection/dataFlow/scrIDEA1/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/ScrIDEA1.java similarity index 100% rename from java/java-tests/testData/inspection/dataFlow/scrIDEA1/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/ScrIDEA1.java diff --git a/java/java-tests/testData/inspection/dataFlow/StrangeArrayIndexOutOfBounds/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/StrangeArrayIndexOutOfBounds.java similarity index 68% rename from java/java-tests/testData/inspection/dataFlow/StrangeArrayIndexOutOfBounds/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/StrangeArrayIndexOutOfBounds.java index ac03eea54355..7a621451df6d 100644 --- a/java/java-tests/testData/inspection/dataFlow/StrangeArrayIndexOutOfBounds/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/StrangeArrayIndexOutOfBounds.java @@ -1,5 +1,8 @@ -public class Test { - public void foo() { +import java.util.*; +import java.io.*; + +class Test { + public void foo(String propertiesFile) { Properties properties = new Properties(); InputStream inStream = null; try { @@ -20,15 +23,18 @@ public class Test { System.exit(-1); } catch (IOException e) { - LOG.error(e.getMessage(), e); + LOG.error(e.getMessage(), e); } finally { if (inStream != null) { try { inStream.close(); } catch (IOException e) { - LOG.info(e); + LOG.info(e); } } } } + + void setValue(String a, String b) {} + void removeCustomPrefixFromProperties(String file) {} } \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/SwitchEnumCases/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/SwitchEnumCases.java similarity index 90% rename from java/java-tests/testData/inspection/dataFlow/SwitchEnumCases/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/SwitchEnumCases.java index db2b055df957..c0e82919b378 100644 --- a/java/java-tests/testData/inspection/dataFlow/SwitchEnumCases/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/SwitchEnumCases.java @@ -1,4 +1,4 @@ -public class Test { +class Test { void withDefaultWithoutBreak(MyEnum e) { String foo = null; switch (e) { @@ -69,7 +69,7 @@ public class Test { case FOO: foo = "foo"; } - int l = foo.length(); + int l = foo.length(); } } diff --git a/java/java-tests/testData/inspection/dataFlow/SwitchQualifierProducesNPE/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/SwitchQualifierProducesNPE.java similarity index 56% rename from java/java-tests/testData/inspection/dataFlow/SwitchQualifierProducesNPE/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/SwitchQualifierProducesNPE.java index 20105d064c37..349a7eca4b2f 100644 --- a/java/java-tests/testData/inspection/dataFlow/SwitchQualifierProducesNPE/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/SwitchQualifierProducesNPE.java @@ -1,13 +1,13 @@ import org.jetbrains.annotations.Nullable; -public class Test { +class Test { enum E { A, B } @Nullable static E getE() { return null; } public static void main(String[] args) { - switch (getE()) { // <<< should be highlighted as potential NPE + switch (getE()) { // <<< should be highlighted as potential NPE case A: case B: } diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/ThisInstanceof.java b/java/java-tests/testData/inspection/dataFlow/ancient/ThisInstanceof.java new file mode 100644 index 000000000000..1a6d702ae256 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/ThisInstanceof.java @@ -0,0 +1,5 @@ +class Test { + public void foo() { + boolean b = this instanceof Object; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/ancient/UnboxingNPE.java b/java/java-tests/testData/inspection/dataFlow/ancient/UnboxingNPE.java new file mode 100644 index 000000000000..cafedb893fce --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/ancient/UnboxingNPE.java @@ -0,0 +1,106 @@ +class Auto { + public Auto(int k) { + } + + int f(int k, Auto other) { + { + Integer i = null; + if (i>0) { + } + } + + { + Integer i = null; + int i1 = (int) i; + } + { + Integer i = null; + int i1 = i+i; + } + { + Integer i = null; + int i1 = i++; + } + { + Integer i = null; + Integer i1 = i++; + } + { + Integer i = null; + int[] ia = new int[0]; + int i2 = ia[i]; + } + { + Integer i = null; + int[] i2 = {i}; + } + { + Boolean i = null; + boolean i2 = this==other; + i2 &= i; + } + { + Boolean i = null; + boolean i2 = this==other; + i2 |= i; + } + { + Boolean i = null; + boolean i2 = this==other; + i2 = !i; + } + + { + Integer i = null; + if (this==other) { + return i; + } + } + { + Integer i = null; + switch(i) { + case 0: + } + } + { + Boolean i = null; + boolean i2 = i && i; + } + { + Boolean i = null; + boolean i2 = i | i; + } + { + Boolean i = null; + boolean i2 = true ^ i; + } + { + Boolean i = null; + boolean i2 = i ? true : false; + } + { + Integer i = null; + f(i); + } + { + Integer i = null; + new Auto(i); + } + { + Integer i = null; + i++; + } + { + Integer i = null; + --i; + } + { + Boolean i = null; + Boolean i2 = !i; + } + + return 0; + } + + void f(int i) {} +} diff --git a/java/java-tests/testData/inspection/dataFlow/wrongEqualTypes/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/WrongEqualTypes.java similarity index 87% rename from java/java-tests/testData/inspection/dataFlow/wrongEqualTypes/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/WrongEqualTypes.java index e514b19a236e..835a261aba96 100644 --- a/java/java-tests/testData/inspection/dataFlow/wrongEqualTypes/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/WrongEqualTypes.java @@ -1,6 +1,6 @@ import java.util.Calendar; -public class Test { +class Test { public void foo(Object c) { if (c instanceof Calendar) return; if (c == Calendar.getInstance()) {} diff --git a/java/java-tests/testData/inspection/dataFlow/xor/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/Xor.java similarity index 89% rename from java/java-tests/testData/inspection/dataFlow/xor/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/Xor.java index a4d45845a386..7229d00818fe 100644 --- a/java/java-tests/testData/inspection/dataFlow/xor/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/Xor.java @@ -1,4 +1,4 @@ -public class Test { +class Test { public static void test(final Object a, final Object b) { if ((a == null ^ b == null) || (a != null && a.hashCode() != b.hashCode())) { diff --git a/java/java-tests/testData/inspection/dataFlow/YoleBug/src/Test.java b/java/java-tests/testData/inspection/dataFlow/ancient/YoleBug.java similarity index 51% rename from java/java-tests/testData/inspection/dataFlow/YoleBug/src/Test.java rename to java/java-tests/testData/inspection/dataFlow/ancient/YoleBug.java index 0e837567413d..c014ac9f4f7e 100644 --- a/java/java-tests/testData/inspection/dataFlow/YoleBug/src/Test.java +++ b/java/java-tests/testData/inspection/dataFlow/ancient/YoleBug.java @@ -1,11 +1,11 @@ import org.jetbrains.annotations.*; -public class Test { +class Test { @NotNull public Object foo() { return new Object(); } public void qqq() { - int c = foo() != null ? foo().hashCode() : 0; + int c = foo() != null ? foo().hashCode() : 0; } } diff --git a/java/java-tests/testData/inspection/dataFlow/andEq/expected.xml b/java/java-tests/testData/inspection/dataFlow/andEq/expected.xml deleted file mode 100644 index 80ebc9e6da49..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/andEq/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 4 - r is always true - - diff --git a/java/java-tests/testData/inspection/dataFlow/andEq/src/Test.java b/java/java-tests/testData/inspection/dataFlow/andEq/src/Test.java deleted file mode 100644 index 8919f1582c7a..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/andEq/src/Test.java +++ /dev/null @@ -1,8 +0,0 @@ -public class Test { - public void foo(boolean x, boolean y, boolean z) { - boolean r = true; - r &= x; - r &= y; - r &= z; - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/autoboxing/expected.xml b/java/java-tests/testData/inspection/dataFlow/autoboxing/expected.xml deleted file mode 100644 index 47d68e51cbef..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/autoboxing/expected.xml +++ /dev/null @@ -1,345 +0,0 @@ - - - - Test.java - 5 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>i==j</code> is always <code>true</code> - - - - - Test.java - 9 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>i==j2</code> is always <code>false</code> - - - - - Test.java - 12 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>i==0</code> is always <code>true</code> - - - - - Test.java - 15 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>i==1</code> is always <code>false</code> - - - - Test.java - 22 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>big1==333</code> is always <code>true</code> - - - - - - Test.java - 24 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>333 == big2</code> is always <code>true</code> - - - - - - Test.java - 26 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>333==333</code> is always <code>true</code> - - - - - - Test.java - 28 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>big1==big2</code> is always <code>false</code> - - - - - - Test.java - 32 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>prim==big2</code> is always <code>true</code> - - - - - - Test.java - 36 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>big1 == 0</code> is always <code>false</code> - - - - - - Test.java - 39 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>big1 == 332</code> is always <code>false</code> - - - - - - Test.java - 44 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>c==1234</code> is always <code>true</code> - - - - - - Test.java - 47 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>c==124</code> is always <code>false</code> - - - - - - Test.java - 51 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>c==1234</code> is always <code>false</code> - - - - - - Test.java - 54 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>c==c</code> is always <code>true</code> - - - - - - Test.java - 58 - - void f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Condition <code>c==c2</code> is always <code>true</code> - - - - Test.java - 73 - - void canBeStatic(int x) - canBeStatic(int) - <default> - - aaa - aaa - - - Constant conditions & exceptions - Condition <code>a == 5</code> is always <code>false</code> - - - Test.java - 83 - - void f(int p) - f(int) - <default> - - aaa - aaa - - - Constant conditions & exceptions - Condition <code>i1 == i2</code> is always <code>true</code> - - - - - - Test.java - 107 - 'r2==r3' is always false - - - - - - - - Test.java - 116 - 'fr2==fr3' is always false - - - diff --git a/java/java-tests/testData/inspection/dataFlow/autoboxing/src/Test.java b/java/java-tests/testData/inspection/dataFlow/autoboxing/src/Test.java deleted file mode 100644 index 38139de95b8c..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/autoboxing/src/Test.java +++ /dev/null @@ -1,119 +0,0 @@ -public class Auto { - void f(int k) { - Integer i = 0; - Integer j=0; - if (i==j) { - - } - Integer j2 = 1; - if (i==j2) { - - } - if (i==0) { - - } - if (i==1) { - - } - - ////////////////// - Integer big1 = 333; - Integer big2= 333; - if (big1==333) { - } - if (333 == big2) { - } - if (333==333) { - } - if (big1==big2) { - - } - int prim = big1; - if (prim==big2) { - - } - - if (big1 == 0) { - - } - if (big1 == 332) { - - } - - Character c = 1234; - if (c==1234) { - - } - if (c==124) { - - } - c = 1; - if (c==1234) { - - } - if (c==c) { - - } - Character c2 = 1; - if (c==c2) { - - } - } -} -class aaa { - int a; - int b; - void canBeStatic(int x) { - for (int i=0;i<10;i++) { - a = i; - } - - a = 4; - - if (a == 5) { - } - } - - - void f(int p) { - { - int i = 1; - Integer i1 = i; - Integer i2 = i; - if (i1 == i2) { - - } - } - { - int i = p; - Integer i1 = i; - Integer i2 = i; - if (i1 == i2) { - - } - } - } - -} -class UsesDoubleAndFloat { - void f() { - double dd = 10.0; - Double r = dd; - Double r1 = dd; - System.out.println("(r==r1) is "+(r==r1)); - - Double r2 = 10.0; - Double r3 = 10.0; - System.out.println("(r2==r3) is "+(r2==r3)); - - float fd = 10.0f; - Float fr = fd; - Float fr1 = fd; - System.out.println("(r==r1) is "+(fr==fr1)); - - Float fr2 = 10.0f; - Float fr3 = 10.0f; - System.out.println("(r2==r3) is "+(fr2==fr3)); - - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/caseAndNpe/expected.xml b/java/java-tests/testData/inspection/dataFlow/caseAndNpe/expected.xml deleted file mode 100644 index b2c05abfdce5..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/caseAndNpe/expected.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - CaseAndNpe.java - 71 - Condition 'a != null' is always true - - - CaseAndNpe.java - 18 - Method invocation 'equals' may produce NullPointerException - - - CaseAndNpe.java - 40 - Switch label 'case 1:' is unreachable - - - CaseAndNpe.java - 41 - Switch label 'case 2:' is unreachable - - - CaseAndNpe.java - 48 - Condition <code>i < 5</code> is always <code>false</code> - - - CaseAndNpe.java - 72 - Condition is always true - - - diff --git a/java/java-tests/testData/inspection/dataFlow/cce/expected.xml b/java/java-tests/testData/inspection/dataFlow/cce/expected.xml deleted file mode 100644 index 5567d5d6f644..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/cce/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - Cce.java - 12 - may produce ClassCastException - - - diff --git a/java/java-tests/testData/inspection/dataFlow/constantExpr/expected.xml b/java/java-tests/testData/inspection/dataFlow/constantExpr/expected.xml deleted file mode 100644 index 8e169325e53b..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/constantExpr/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 6 - Condition 'i == j' is always true - - diff --git a/java/java-tests/testData/inspection/dataFlow/exceptionCFG/expected.xml b/java/java-tests/testData/inspection/dataFlow/exceptionCFG/expected.xml deleted file mode 100644 index 9ac879d78616..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/exceptionCFG/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/finalFields/expected.xml b/java/java-tests/testData/inspection/dataFlow/finalFields/expected.xml deleted file mode 100644 index 796a315e49f5..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/finalFields/expected.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/java/java-tests/testData/inspection/dataFlow/inst/expected.xml b/java/java-tests/testData/inspection/dataFlow/inst/expected.xml deleted file mode 100644 index 288b8f510cf0..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/inst/expected.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - Inst.java - 16 - Condition 'a instanceof A' is always true - - - Inst.java - 25 - Condition 'a instanceof B' is always false - - - diff --git a/java/java-tests/testData/inspection/dataFlow/npe1/expected.xml b/java/java-tests/testData/inspection/dataFlow/npe1/expected.xml deleted file mode 100644 index 2ac370b11daa..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/npe1/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - Npe.java - 7 - Method invocation 'equals' produce NullPointerException - - - diff --git a/java/java-tests/testData/inspection/dataFlow/npe1/src/Npe.java b/java/java-tests/testData/inspection/dataFlow/npe1/src/Npe.java deleted file mode 100644 index 10152e0516ea..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/npe1/src/Npe.java +++ /dev/null @@ -1,9 +0,0 @@ -public class Npe { - public void a(Object o) { - if (o != null) { - // Do something - } - - o.equals(); - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/nullableField/expected.xml b/java/java-tests/testData/inspection/dataFlow/nullableField/expected.xml deleted file mode 100644 index 834a81ab6230..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/nullableField/expected.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - Test.java - 6 - 'equals' will produce NullPointerException - - - diff --git a/java/java-tests/testData/inspection/dataFlow/nullableField/src/Test.java b/java/java-tests/testData/inspection/dataFlow/nullableField/src/Test.java deleted file mode 100644 index ddc0dbec52a1..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/nullableField/src/Test.java +++ /dev/null @@ -1,8 +0,0 @@ -public class Test { - public String s; - - public void foo() { - s = null; - boolean b = s.equals(s); - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/orBug/expected.xml b/java/java-tests/testData/inspection/dataFlow/orBug/expected.xml deleted file mode 100644 index ec272abeaa3a..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/orBug/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/scrIDEA1/expected.xml b/java/java-tests/testData/inspection/dataFlow/scrIDEA1/expected.xml deleted file mode 100644 index 0953dd7d08c6..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/scrIDEA1/expected.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/thisInstanceof/expected.xml b/java/java-tests/testData/inspection/dataFlow/thisInstanceof/expected.xml deleted file mode 100644 index 6f6f49641204..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/thisInstanceof/expected.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Test.java - 3 - 'this instanceof Object' is always true - - diff --git a/java/java-tests/testData/inspection/dataFlow/thisInstanceof/src/Test.java b/java/java-tests/testData/inspection/dataFlow/thisInstanceof/src/Test.java deleted file mode 100644 index c72dd6d24997..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/thisInstanceof/src/Test.java +++ /dev/null @@ -1,5 +0,0 @@ -public class Test { - public void foo() { - boolean b = this instanceof Object; - } -} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/dataFlow/unboxingNPE/expected.xml b/java/java-tests/testData/inspection/dataFlow/unboxingNPE/expected.xml deleted file mode 100644 index 06f4ca5b5054..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/unboxingNPE/expected.xml +++ /dev/null @@ -1,387 +0,0 @@ - - - - Test.java - 95 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 91 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 31 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 87 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 14 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 75 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 83 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 45 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 67 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 71 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 8 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 79 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 22 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 50 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 56 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 26 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 99 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 35 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 40 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 61 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - - - Test.java - 18 - - int f(int k) - f(int) - <default> - - Auto - Auto - - - Constant conditions & exceptions - Unboxing of <code>i</code> may produce <code>NullPointerException</code>. - - - - Test.java - 67 - <default> - Constant conditions & exceptions - Condition <code>i</code> is always <code>true</code> when reached - - - diff --git a/java/java-tests/testData/inspection/dataFlow/unboxingNPE/src/Test.java b/java/java-tests/testData/inspection/dataFlow/unboxingNPE/src/Test.java deleted file mode 100644 index 31aca4765cd1..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/unboxingNPE/src/Test.java +++ /dev/null @@ -1,104 +0,0 @@ -class Auto { - public Auto(int k) { - } - - int f(int k, Auto other) { - { - Integer i = null; - if (i>0) { - } - } - - { - Integer i = null; - int i1 = (int) i; - } - { - Integer i = null; - int i1 = i+i; - } - { - Integer i = null; - int i1 = i++; - } - { - Integer i = null; - Integer i1 = i++; - } - { - Integer i = null; - int[] ia = new int[0]; - int i2 = ia[i]; - } - { - Integer i = null; - int[] i2 = {i}; - } - { - Boolean i = null; - boolean i2 = this==other; - i2 &= i; - } - { - Boolean i = null; - boolean i2 = this==other; - i2 |= i; - } - { - Boolean i = null; - boolean i2 = this==other; - i2 = !i; - } - - { - Integer i = null; - if (this==other) { - return i; - } - } - { - Integer i = null; - switch(i) { - case 0: - } - } - { - Boolean i = null; - boolean i2 = i && i; - } - { - Boolean i = null; - boolean i2 = i | i; - } - { - Boolean i = null; - boolean i2 = true ^ i; - } - { - Boolean i = null; - boolean i2 = i ? true : false; - } - { - Integer i = null; - f(i); - } - { - Integer i = null; - new Auto(i); - } - { - Integer i = null; - i++; - } - { - Integer i = null; - --i; - } - { - Boolean i = null; - Boolean i2 = !i; - } - - return 0; - } -} diff --git a/java/java-tests/testData/inspection/dataFlow/wrongEqualTypes/expected.xml b/java/java-tests/testData/inspection/dataFlow/wrongEqualTypes/expected.xml deleted file mode 100644 index 9ac879d78616..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/wrongEqualTypes/expected.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/java/java-tests/testData/inspection/dataFlow/xor/expected.xml b/java/java-tests/testData/inspection/dataFlow/xor/expected.xml deleted file mode 100644 index 796a315e49f5..000000000000 --- a/java/java-tests/testData/inspection/dataFlow/xor/expected.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionAncientTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionAncientTest.java index 8d9b5d079fd8..b7efe02a012b 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionAncientTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/DataFlowInspectionAncientTest.java @@ -1,118 +1,97 @@ -/* - * Copyright 2000-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.java.codeInspection; import com.intellij.JavaTestUtil; import com.intellij.codeInspection.dataFlow.DataFlowInspection; -import com.intellij.testFramework.InspectionTestCase; +import com.intellij.testFramework.LightProjectDescriptor; +import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase; +import org.jetbrains.annotations.NotNull; -/** - * @author max - * @since Apr 11, 2002 - */ -public class DataFlowInspectionAncientTest extends InspectionTestCase { +public class DataFlowInspectionAncientTest extends LightCodeInsightFixtureTestCase { @Override - protected String getTestDataPath() { - return JavaTestUtil.getJavaTestDataPath() + "/inspection"; + protected String getBasePath() { + return JavaTestUtil.getRelativeJavaTestDataPath() + "/inspection/dataFlow/ancient"; + } + + @NotNull + @Override + protected LightProjectDescriptor getProjectDescriptor() { + return JAVA_1_7; } private void doTest() { - doTest(false); - } - private void doTest(boolean lowercase) { DataFlowInspection inspection = new DataFlowInspection(); inspection.REPORT_CONSTANT_REFERENCE_VALUES = false; - doTest("dataFlow/" + getTestName(lowercase), inspection); + myFixture.enableInspections(inspection); + myFixture.testHighlighting(getTestName(false) + ".java"); } - private void doTest15() { - doTest15(false); - } - private void doTest15(boolean lowercase) { - DataFlowInspection inspection = new DataFlowInspection(); - inspection.REPORT_CONSTANT_REFERENCE_VALUES = false; - doTest("dataFlow/" + getTestName(lowercase), inspection, "java 1.5"); - } - - public void testNpe1() { doTest(true); } - public void testCaseAndNpe() { doTest(true); } - public void testCce() { doTest(true); } - public void testExceptionCFG() { doTest(true); } - public void testInst() { doTest(true); } - public void testWrongEqualTypes() { doTest(true); } + public void testNpe1() { doTest(); } + public void testCaseAndNpe() { doTest(); } + public void testCce() { doTest(); } + public void testExceptionCFG() { doTest(); } + public void testInst() { doTest(); } + public void testWrongEqualTypes() { doTest(); } public void testSCR13626() { doTest(); } public void testSCR13871() { doTest(); } public void testInstanceof() { doTest(); } - public void testOrBug() { doTest(true); } + public void testOrBug() { doTest(); } public void testSCR14819() { doTest(); } public void testSCR14314() { doTest(); } public void testSCR15162() { doTest(); } public void testCatchParameterCantBeNull() { doTest(); } - public void testXor() { doTest(true); } + public void testXor() { doTest(); } public void testGenericInstanceof() { doTest(); } - public void testThisInstanceof() { doTest(true); } - public void testAndEq() { doTest(true); } - public void testNullableField() { doTest(true); } + public void testThisInstanceof() { doTest(); } + public void testAndEq() { doTest(); } + public void testNullableField() { doTest(); } public void testSCR39950() { doTest(); } - public void testScrIDEA1() { doTest(true); } + public void testScrIDEA1() { doTest(); } public void testSCR18186() { doTest(); } - public void testConstantExpr() { doTest(true); } + public void testConstantExpr() { doTest(); } public void testIDEADEV74518() { doTest(); } public void testIDEADEV74518_2() { doTest(); } public void testIDEADEV77819() { doTest(); } public void testIDEADEV78370() { doTest(); } public void testRegressionByPti() { doTest(); } - public void testNotNullable() { doTest15(); } - public void testNotNullableParameter() { doTest15(); } - public void testNotNullableParameter2() { doTest15(); } - public void testNullable() { doTest15(); } - public void testNullableThroughCast() { doTest15(); } - public void testNullableProblemThroughCast() { doTest15(); } - public void testNullableThroughVariable() { doTest15(); } - public void testNullableThroughVariableShouldNotBeReported() { doTest15(); } - public void testNullableLocalVariable() { doTest15(); } - public void testNotNullLocalVariable() { doTest15(); } - public void testNullableReturn() { doTest15(); } - public void testNullableReturn1() { doTest15(); } - public void testFinalFields() { doTest15(true); } - public void testNotNullArray() { doTest15(); } - public void testFieldsFlashing() { doTest15(); } - public void testConditionFalseAndNPE() { doTest15(); } - public void testIDEADEV1575() { doTest15(); } - public void testAlexBug() { doTest15(); } - public void testYoleBug() { doTest15(); } - public void testForeachFlow() { doTest15(); } - public void testForEachNPE() { doTest15(); } - public void testArrayAccessNPE() { doTest15(); } - public void testArrayAccessDoesntCancelAnalysis() { doTest15(); } - public void testAutoboxing() { doTest15(true); } - public void testUnboxingNPE() { doTest15(true); } - public void testStrangeArrayIndexOutOfBounds() { doTest15(); } - public void testIDEADEV2605() { doTest15(); } - public void testConstantsDifferentTypes() { doTest15(); } - public void testBoxingNaN() { doTest15(); } - public void testCheckedExceptionDominance() { doTest15(); } - public void testIDEADEV10489() { doTest15(); } - public void testPlusOnStrings() { doTest15(); } - public void testSwitchQualifierProducesNPE() {doTest15(); } - public void testIDEADEV15583() {doTest15(); } - public void testIDEADEV13153() { doTest15(); } - public void testIDEADEV13156() { doTest15(); } - public void testSwitchEnumCases() { doTest15(); } + public void testNotNullable() { doTest(); } + public void testNotNullableParameter() { doTest(); } + public void testNotNullableParameter2() { doTest(); } + public void testNullable() { doTest(); } + public void testNullableThroughCast() { doTest(); } + public void testNullableProblemThroughCast() { doTest(); } + public void testNullableThroughVariable() { doTest(); } + public void testNullableThroughVariableShouldNotBeReported() { doTest(); } + public void testNullableLocalVariable() { doTest(); } + public void testNotNullLocalVariable() { doTest(); } + public void testNullableReturn() { doTest(); } + public void testNullableReturn1() { doTest(); } + public void testFinalFields() { doTest(); } + public void testNotNullArray() { doTest(); } + public void testFieldsFlashing() { doTest(); } + public void testConditionFalseAndNPE() { doTest(); } + public void testIDEADEV1575() { doTest(); } + public void testAlexBug() { doTest(); } + public void testYoleBug() { doTest(); } + public void testForeachFlow() { doTest(); } + public void testForEachNPE() { doTest(); } + public void testArrayAccessNPE() { doTest(); } + public void testArrayAccessDoesntCancelAnalysis() { doTest(); } + public void testAutoboxing() { doTest(); } + public void testUnboxingNPE() { doTest(); } + public void testStrangeArrayIndexOutOfBounds() { doTest(); } + public void testIDEADEV2605() { doTest(); } + public void testConstantsDifferentTypes() { doTest(); } + public void testBoxingNaN() { doTest(); } + public void testCheckedExceptionDominance() { doTest(); } + public void testIDEADEV10489() { doTest(); } + public void testPlusOnStrings() { doTest(); } + public void testSwitchQualifierProducesNPE() {doTest(); } + public void testIDEADEV15583() {doTest(); } + public void testIDEADEV13153() { doTest(); } + public void testIDEADEV13156() { doTest(); } + public void testSwitchEnumCases() { doTest(); } public void testSCR15406() { doTest(); } }