summaryrefslogtreecommitdiff
path: root/java/java-tests/testData/inspection/dataFlow/fixture/AccessingSameArrayElements.java
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2014-07-25 13:10:36 -0700
committerTor Norbye <tnorbye@google.com>2014-07-25 13:10:36 -0700
commite5266e2343c8d275d79fa0be725180d0fe3a993c (patch)
tree0ba72f5de1949e0527874a799baa224cbe1537e0 /java/java-tests/testData/inspection/dataFlow/fixture/AccessingSameArrayElements.java
parentb03a5855292feb8c331815f883fe64372aacd872 (diff)
parent2e5965e996aad62ab1338b09d54caaf99ff3dd6a (diff)
downloadidea-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.java56
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