// Test case for Issue 339: // https://github.com/typetools/checker-framework/issues/339 import org.checkerframework.checker.nullness.qual.*; class Issue339<S> { static <T> @NonNull T checkNotNull(T p) { throw new RuntimeException(); } void m(@Nullable S s) { @NonNull S r1 = Issue339.<@Nullable S>checkNotNull(s); @NonNull S r2 = Issue339.checkNotNull(s); @NonNull S r3 = Issue339.checkNotNull(null); } }