import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;

class NoExplicitAnnotationsSub1 {
    // There is no explicit annotation here.
    String method1();
}

class NoExplicitAnnotationsSub2 {
    // There is an explicit annotation here.
    @NonNull String method2();
}

class NoExplicitAnnotationsSub3 {
    // There is an explicit annotation here.
    @Nullable String method3();
}
