public class Container {
public static /*@ non_null @*/ Object c = new Object();
/*@ public normal_behavior
@ assignable c;
@*/
public static void allocate() {
c = new Object();
}
public static void test() {
allocate();
//@ assert c instanceof Object;
}
}
// Note: the allocate call has no postconditions, which normally would mean that c could be anything
// after the call. However c is delcared non_null and has type Object, so the assertion should be provable.