import org.checkerframework.checker.initialization.qual.UnknownInitialization;
import org.checkerframework.checker.nullness.qual.EnsuresNonNull;
import org.checkerframework.checker.nullness.qual.Raw;
class OverrideANNA3 {
static class Super {
Object f;
Object g;
@EnsuresNonNull({"f", "g"})
void setfg(@Raw @UnknownInitialization Super this) {
f = new Object();
g = new Object();
}
Super() {
setfg();
}
}
static class Sub extends Super {
@Override
@EnsuresNonNull("f")
//:: error: (contracts.postcondition.override.invalid)
void setfg(@Raw @UnknownInitialization Sub this) {
f = new Object();
}
}
public static void main(String[] args) {
Super s = new Sub();
s.g.hashCode();
}
}