import org.checkerframework.checker.nullness.qual.*;

interface FunctionBC<T extends @Nullable Object, R> {
    R apply(T t);
}

class FromByteCode {

    FunctionBC<String, String> f1 = String::toString;

    // Make sure there aren't any issues generating an error with a method from byte code
    // :: error: (methodref.param.invalid)
    FunctionBC<@Nullable String, String> f2 = String::new;
}
