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
|
import org.checkerframework.checker.initialization.qual.*;
import org.checkerframework.checker.nullness.qual.*;
class OverrideANNA {
static class Super {
Object f;
@EnsuresNonNull("f")
void setf(@UnknownInitialization Super this) {
f = new Object();
}
Super() {
setf();
}
}
static class Sub extends Super {
@Override
// :: error: (contracts.postcondition.not.satisfied)
void setf(@UnknownInitialization Sub this) {}
}
public static void main(String[] args) {
Super s = new Sub();
s.f.hashCode();
}
}
|