// Test case for Issue 350: // https://github.com/typetools/checker-framework/issues/350 import org.checkerframework.checker.nullness.qual.*; class Test1 { public @Nullable String y; public void test2() { y = ""; // Sanity check that -AconcurrentSemantics is set //:: error: (dereference.of.nullable) y.toString(); } private @MonotonicNonNull String x; void test() { if (x == null) { x = ""; } x.toString(); } } class Test2 { private @MonotonicNonNull String x; void setX(String x) { this.x = x; } void test() { if (x == null) { x = ""; } setX(x); } } class Test3 { private @MonotonicNonNull String x; @EnsuresNonNull("#1") void setX(final String x) { this.x = x; } }