diff options
author | Tor Norbye <tnorbye@google.com> | 2014-07-25 13:10:36 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2014-07-25 13:10:36 -0700 |
commit | e5266e2343c8d275d79fa0be725180d0fe3a993c (patch) | |
tree | 0ba72f5de1949e0527874a799baa224cbe1537e0 /java/java-tests/testData/inspection/dataFlow/fixture/AccessingSameArrayElements.java | |
parent | b03a5855292feb8c331815f883fe64372aacd872 (diff) | |
parent | 2e5965e996aad62ab1338b09d54caaf99ff3dd6a (diff) | |
download | idea-e5266e2343c8d275d79fa0be725180d0fe3a993c.tar.gz |
Merge remote-tracking branch 'aosp/upstream-master' into merge
Conflicts:
.idea/modules.xml
Change-Id: I5e3d04bc83cdc26b2b56fca66b44b1dd8941b143
Diffstat (limited to 'java/java-tests/testData/inspection/dataFlow/fixture/AccessingSameArrayElements.java')
-rw-r--r-- | java/java-tests/testData/inspection/dataFlow/fixture/AccessingSameArrayElements.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/AccessingSameArrayElements.java b/java/java-tests/testData/inspection/dataFlow/fixture/AccessingSameArrayElements.java new file mode 100644 index 000000000000..a5a0001517d6 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/fixture/AccessingSameArrayElements.java @@ -0,0 +1,56 @@ +abstract class Test { + void testSameEquals(int[] arr1, int[] arr2) { + if (arr1[0] == arr2[0] && <warning descr="Condition 'arr1[0] == arr2[0]' is always 'true' when reached">arr1[0] == arr2[0]</warning>) { + } + } + + void testMatrices(int[][][] arr1, int[][][] arr2) { + if (arr1[0][1][2] == arr1[0][1][3] && + <warning descr="Condition 'arr1[0][1][2] == arr1[0][1][3]' is always 'true' when reached">arr1[0][1][2] == arr1[0][1][3]</warning>) { + } + } + + void testNotEquals(int[] arr1, int[] arr2) { + if (arr1[0] != arr2[0]) return; + + if (<warning descr="Condition 'arr1[0] == arr2[0]' is always 'true'">arr1[0] == arr2[0]</warning>) {} + } + + void testInvalidatingCall(int[] arr1, int[] arr2) { + if (arr1[0] != arr2[0]) return; + + changeArray(arr1); + + if (arr1[0] == arr2[0]) {} + } + abstract void changeArray(int[] array); + + + void testIndirectlyInvalidatingCall(int[] arr1, int[] arr2, int[][] arr3) { + arr3[0] = arr1; + + if (arr1[0] != arr2[0]) return; + + changeSubArray(arr3); + + if (arr1[0] == arr2[0]) {} + } + abstract void changeSubArray(int[][] array); + + + void testAssigning(int[] arr1, int j) { + arr1[0] = j; + if (<warning descr="Condition 'arr1[0] == j' is always 'true'">arr1[0] == j</warning>) { } + } + + void testReassigning(int[] arr1) { + arr1[0] = 1; + arr1[1] = 3; + if (<warning descr="Condition 'arr1[0] == 1' is always 'true'">arr1[0] == 1</warning>) { } + + for (int i = 0; i < arr1.length; i++) { + arr1[i] = 2; + } + if (arr1[0] == 1) { } + } +}
\ No newline at end of file |