// Test case for Issue 1084
// https://github.com/typetools/checker-framework/issues/1084
import org.checkerframework.checker.nullness.qual.NonNull;
class MyOpt<T extends Object> {
static <S> MyOpt<@NonNull S> empty() {
throw new RuntimeException();
}
static <S> MyOpt<S> of(S p) {
throw new RuntimeException();
}
}
class Issue1084 {
MyOpt<Long> get() {
return this.hashCode() > 0 ? MyOpt.of(5L) : MyOpt.empty();
}
MyOpt<byte[]> oba = MyOpt.empty();
}