blob: 79f496830921363e7e295bc940310e88ed2e6484 [file] [log] [blame]
import org.checkerframework.checker.nullness.qual.Nullable;
public class InLambdaAnnotated {
static class Mine<T> {
@SuppressWarnings("nullness") // just a utility
static <S> Mine<S> some() {
return null;
}
}
interface Function<T, R> {
R apply(T t);
}
interface Box<V> {}
static class Boxes {
@SuppressWarnings("nullness") // just a utility
static <O> Box<O> transform(Function<String, ? extends O> function) {
return null;
}
}
class Infer {
// The nested Mine.some() needs to infer the right type.
Box<Mine<@Nullable Integer>> g =
// TODO: This is a false positive.
// :: error: (assignment)
Boxes.transform(
el -> {
return Mine.some();
});
void bar(Function<String, Mine<@Nullable Integer>> fun) {
Box<Mine<@Nullable Integer>> h = Boxes.transform(fun);
}
}
}