/* * @test * @summary Test case for Issue 820 https://github.com/typetools/checker-framework/issues/820 * * @compile/fail/ref=Class1Class2-err.out -XDrawDiagnostics -Xlint:unchecked -processor org.checkerframework.checker.nullness.NullnessChecker -AprintErrorStack -Anomsgtext Class1.java Class2.java * @compile/fail/ref=Class2Class1-err.out -XDrawDiagnostics -Xlint:unchecked -processor org.checkerframework.checker.nullness.NullnessChecker -AprintErrorStack -Anomsgtext Class2.java Class1.java * */ import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.RequiresNonNull; public class Class1 { public static @Nullable Object field = null; public @Nullable Object instanceField = null; @EnsuresNonNull("#1.instanceField") public static void method3(Class2 class2) { class2.instanceField = new Object(); } @EnsuresNonNull("#1.instanceField") public static void method4(Class2 class2) { class2.instanceField = new Object(); } @EnsuresNonNull("#1.instanceField") public static void method5(Class2 class2) {} @EnsuresNonNull("#1") public static void method6(Class2 class2) {} @RequiresNonNull("#1.instanceField") public static void method3R(Class2 class2) { class2.instanceField.toString(); } }