File: Issue2334.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 (40 lines) | stat: -rw-r--r-- 1,040 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
34
35
36
37
38
39
40
// Test case for issue #2334: http://tinyurl.com/cfissue/2334

import org.checkerframework.checker.index.qual.NonNegative;

class Issue2334 {

    void hasSideEffect() {}

    String stringField;

    void m1(String stringFormal) {
        if (stringFormal.indexOf('d') != -1) {
            hasSideEffect();
            @NonNegative int i = stringFormal.indexOf('d');
        }
    }

    void m2() {
        if (stringField.indexOf('d') != -1) {
            hasSideEffect();
            // :: error: (assignment.type.incompatible)
            @NonNegative int i = stringField.indexOf('d');
        }
    }

    void m3(String stringFormal) {
        if (stringFormal.indexOf('d') != -1) {
            System.out.println("hey");
            @NonNegative int i = stringFormal.indexOf('d');
        }
    }

    void m4() {
        if (stringField.indexOf('d') != -1) {
            System.out.println("hey");
            // :: error: (assignment.type.incompatible)
            @NonNegative int i = stringField.indexOf('d');
        }
    }
}