File: EnsuresNonNullIfInheritedTest.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 (44 lines) | stat: -rw-r--r-- 886 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
41
42
43
44
import org.checkerframework.checker.nullness.qual.*;

class Node {
    int id;
    @Nullable Node next;

    Node(int id, @Nullable Node next) {
        this.id = id;
        this.next = next;
    }
}

class SubEnumerate {
    protected @Nullable Node current;

    public SubEnumerate(Node node) {
        this.current = node;
    }

    @EnsuresNonNullIf(expression = "current", result = true)
    public boolean hasMoreElements() {
        return (current != null);
    }
}

class Enumerate extends SubEnumerate {

    public Enumerate(Node node) {
        super(node);
    }

    public boolean hasMoreElements() {
        return (current != null);
    }
}

class Main {
    public static final void main(String args[]) {
        Node n2 = new Node(2, null);
        Node n1 = new Node(1, n2);
        Enumerate e = new Enumerate(n1);
        while (e.hasMoreElements()) {}
    }
}