import org.checkerframework.checker.initialization.qual.UnderInitialization;
import org.checkerframework.checker.nullness.qual.NonNull;
public class TypeFrames2 {
class A {
@NonNull String a;
public A() {
//:: error: (method.invocation.invalid)
this.foo();
a = "";
this.foo();
}
public void foo(@UnderInitialization(A.class) A this) {}
}
class B extends A {
@NonNull String b;
public B() {
super();
this.foo();
//:: error: (method.invocation.invalid)
this.bar();
b = "";
this.bar();
}
public void bar(@UnderInitialization(B.class) B this) {}
}
}