Nothing
Code
mat
Output
logical integer double character raw list
logical "logical" "integer" "double" NA NA NA
integer "integer" "integer" "double" NA NA NA
double "double" "double" "double" NA NA NA
character NA NA NA "character" NA NA
raw NA NA NA NA "raw" NA
list NA NA NA NA NA "list"
Code
vec_ptype2("foo", 10)
Condition
Error:
! Can't combine `"foo"` <character> and `10` <double>.
Code
df1 <- tibble(x = tibble(y = tibble(z = 1)))
df2 <- tibble(x = tibble(y = tibble(z = "a")))
vec_ptype2(df1, df2)
Condition
Error:
! Can't combine `df1$x$y$z` <double> and `df2$x$y$z` <character>.
Code
(expect_error(vec_ptype2(NULL, quote(x), y_arg = "foo"), class = "vctrs_error_scalar_type")
)
Output
<error/vctrs_error_scalar_type>
Error:
! `foo` must be a vector, not a symbol.
Code
(expect_error(vec_ptype2(quote(x), NULL, x_arg = "foo"), class = "vctrs_error_scalar_type")
)
Output
<error/vctrs_error_scalar_type>
Error:
! `foo` must be a vector, not a symbol.
Code
(expect_error(vec_ptype2(NULL, foobar(), y_arg = "foo"), class = "vctrs_error_scalar_type")
)
Output
<error/vctrs_error_scalar_type>
Error:
! `foo` must be a vector, not a <vctrs_foobar> object.
Code
(expect_error(vec_ptype2(foobar(), NULL, x_arg = "foo"), class = "vctrs_error_scalar_type")
)
Output
<error/vctrs_error_scalar_type>
Error:
! `foo` must be a vector, not a <vctrs_foobar> object.
Code
(expect_error(vec_cast(foobar(1, bar = TRUE), foobar(2, baz = TRUE)), class = "vctrs_error_incompatible_type")
)
Output
<error/vctrs_error_cast>
Error:
! Can't convert `foobar(1, bar = TRUE)` <vctrs_foobar> to <vctrs_foobar>.
Code
(expect_error(vec_ptype2(foobar(1, bar = TRUE), foobar(2, baz = TRUE)), class = "vctrs_error_incompatible_type")
)
Output
<error/vctrs_error_ptype2>
Error:
! Can't combine `foobar(1, bar = TRUE)` <vctrs_foobar> and `foobar(2, baz = TRUE)` <vctrs_foobar>.
x Some attributes are incompatible.
i The author of the class should implement vctrs methods.
i See <https://vctrs.r-lib.org/reference/faq-error-incompatible-attributes.html>.
Code
with_foobar_cast <- (function(expr) {
with_methods(vec_cast.vctrs_foobar = function(...) NULL,
vec_cast.vctrs_foobar.vctrs_foobar = function(x, to, ...) vec_default_cast(x,
to, ...), expr)
})
with_foobar_ptype2 <- (function(expr) {
with_methods(vec_ptype2.vctrs_foobar = function(...) NULL,
vec_ptype2.vctrs_foobar.vctrs_foobar = function(x, y, ...) vec_default_ptype2(
x, y, ...), expr)
})
(expect_error(with_foobar_cast(vec_cast(foobar(1, bar = TRUE), foobar(2, baz = TRUE))),
class = "vctrs_error_incompatible_type"))
Output
<error/vctrs_error_cast>
Error:
! Can't convert `foobar(1, bar = TRUE)` <vctrs_foobar> to <vctrs_foobar>.
Code
(expect_error(with_foobar_ptype2(vec_ptype2(foobar(1, bar = TRUE), foobar(2,
baz = TRUE))), class = "vctrs_error_incompatible_type"))
Output
<error/vctrs_error_ptype2>
Error:
! Can't combine `foobar(1, bar = TRUE)` <vctrs_foobar> and `foobar(2, baz = TRUE)` <vctrs_foobar>.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.