
can override arg in OOB conditions
==================================

> with_subscript_data(vec_slice(set_names(letters), "foo"), NULL)
Error: Can't subset elements that don't exist.
x The element `foo` doesn't exist.

> with_subscript_data(vec_slice(set_names(letters), "foo"), "input")
Error: Can't subset elements that don't exist.
x The element `foo` doesn't exist.

> with_subscript_data(vec_slice(set_names(letters), "foo"), quote(input))
Error: Can't subset elements that don't exist.
x The element `foo` doesn't exist.

> with_subscript_data(vec_slice(set_names(letters), "foo"), quote(input[i]))
Error: Can't subset elements that don't exist.
x The element `foo` doesn't exist.


scalar type errors are informative
==================================

> vec_slice(foobar(list(1)), 1)
Error: Input must be a vector, not a `vctrs_foobar` object.

> stop_scalar_type(foobar(list(1)), arg = "foo")
Error: `foo` must be a vector, not a `vctrs_foobar` object.

