blob: 0ebc27dba7b127d9565a01e122dd197293583adb [file] [log] [blame]
/*
* @test
* @summary Test for Issue 347: concurrent semantics has desired behavior
*
* @compile -XDrawDiagnostics -processor org.checkerframework.checker.nullness.NullnessChecker -Alint Issue347.java
* @compile/fail/ref=Issue347-con.out -XDrawDiagnostics -processor org.checkerframework.checker.nullness.NullnessChecker -Alint Issue347.java -AconcurrentSemantics
*/
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
public class Issue347 {
@MonotonicNonNull String mono;
@Nullable String nble;
void testMono() {
if (mono == null) {
return;
}
// The object referenced by mono might change, but it can't become null again, even in
// concurrent semantics.
mono.toString();
}
void testNble() {
if (nble == null) {
return;
}
// error expected in concurrent semantics only
nble.toString();
}
}