File: ConstantArrays.java

package info (click to toggle)
checker-framework-java 3.2.0%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 23,104 kB
  • sloc: java: 145,916; xml: 839; sh: 518; makefile: 404; perl: 26
file content (33 lines) | stat: -rw-r--r-- 1,056 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import org.checkerframework.checker.index.qual.*;

class ConstantArrays {
    void basic_test() {
        int[] b = new int[4];
        @LTLengthOf("b") int[] a = {0, 1, 2, 3};

        // :: error: (array.initializer.type.incompatible)::error: (assignment.type.incompatible)
        @LTLengthOf("b") int[] a1 = {0, 1, 2, 4};

        @LTEqLengthOf("b") int[] c = {-1, 4, 3, 1};

        // :: error: (array.initializer.type.incompatible)::error: (assignment.type.incompatible)
        @LTEqLengthOf("b") int[] c2 = {-1, 4, 5, 1};
    }

    void offset_test() {
        int[] b = new int[4];
        int[] b2 = new int[10];
        @LTLengthOf(
                value = {"b", "b2"},
                offset = {"-2", "5"})
        int[] a = {2, 3, 0};

        @LTLengthOf(
                value = {"b", "b2"},
                offset = {"-2", "5"})
        // :: error: (array.initializer.type.incompatible)::error: (assignment.type.incompatible)
        int[] a2 = {2, 3, 5};

        // Non-constant offsets don't work correctly. See kelloggm#120.
    }
}