import org.checkerframework.checker.nullness.qual.*;
class ThisIsNN {
Object out = new Object();
class Inner {
void test1() {
out = this;
out = ThisIsNN.this;
}
Object in = new Object();
void test2(@Raw Inner this) {
@SuppressWarnings("rawness") // initialization is now complete
@NonRaw Object nonRawThis = this;
out = nonRawThis;
}
void test3(@Raw Inner this) {
@SuppressWarnings("rawness") // initialization is now complete
@NonRaw Object nonRawThis = ThisIsNN.this;
out = nonRawThis;
}
}
void test4(@Raw ThisIsNN this) {
@SuppressWarnings("rawness") // initialization is now complete
@NonRaw Object nonRawThis = this;
out = nonRawThis;
}
}