import org.checkerframework.checker.initialization.qual.*; import org.checkerframework.checker.nullness.qual.*; public class RawPartial { public RawPartial() { //:: error: (method.invocation.invalid) foo1(); foo2(); foo3(); foo4(); } public void foo1() {} public void foo2( @Raw(RawPartial.class) @UnknownInitialization(RawPartial.class) RawPartial this) {} public void foo3( @Raw(RawPartial.class) @UnknownInitialization(RawPartial.class) RawPartial this) {} public void foo4( @Raw(RawPartial.class) @UnknownInitialization(RawPartial.class) RawPartial this) {} public static void main(String[] args) { new SubRP(); } } class SubRP extends RawPartial { @NonNull String f; public SubRP() { f = ""; } @Override //:: error: (override.receiver.invalid) public void foo2() { f.toLowerCase(); } @Override public void foo3(@Raw(RawPartial.class) @UnknownInitialization(RawPartial.class) SubRP this) { //:: error: (dereference.of.nullable) f.toLowerCase(); } @Override public void foo4(@Raw @UnknownInitialization SubRP this) { //:: error: (dereference.of.nullable) f.toLowerCase(); } }