blob: 42fdf78c5d39bd0d9d3a18a1b836d5bb564a5a21 [file] [log] [blame]
package nullness.generics;
import org.checkerframework.checker.nullness.qual.*;
public class GenericBoundsExplicit<@NonNull T extends @Nullable Object> {
@SuppressWarnings("initialization.field.uninitialized")
T t;
public void method() {
// :: error: (dereference.of.nullable)
String str = t.toString();
}
public static void doSomething() {
final GenericBoundsExplicit<@Nullable String> b = new GenericBoundsExplicit<@Nullable String>();
b.method();
}
}
class GenericBoundsExplicit2<@NonNull TT extends @Nullable Object> {
@Nullable TT tt1;
// :: error: (initialization.field.uninitialized)
@NonNull TT tt2;
// :: error: (initialization.field.uninitialized)
TT tt3;
public void context() {
// :: error: (dereference.of.nullable)
tt1.toString();
tt2.toString();
// :: error: (dereference.of.nullable)
tt3.toString();
}
}
@SuppressWarnings("initialization.field.uninitialized")
class GenericBoundsExplicit3<@NonNull TTT extends @NonNull Object> {
@Nullable TTT ttt1;
@NonNull TTT ttt2;
TTT ttt3;
public void context() {
// :: error: (dereference.of.nullable)
ttt1.toString();
ttt2.toString();
ttt3.toString();
}
}