Description Usage Arguments Value References See Also Examples
Checks whether the input is an S3 generic or method.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | assert_is_s3_generic(x, severity = getOption("assertive.severity", "stop"))
assert_is_s3_method(x, severity = getOption("assertive.severity", "stop"))
assert_is_s3_primitive_generic(x, severity = getOption("assertive.severity",
"stop"))
assert_is_s3_group_generic(x, severity = getOption("assertive.severity",
"stop"))
assert_is_s4_group_generic(x, severity = getOption("assertive.severity",
"stop"))
assert_is_s3_internal_generic(x, severity = getOption("assertive.severity",
"stop"))
is_s3_generic(x, .xname = get_name_in_parent(x))
is_s3_method(x, .xname = get_name_in_parent(x))
is_s3_primitive_generic(x, .xname = get_name_in_parent(x))
is_s3_group_generic(x, .xname = get_name_in_parent(x))
is_s4_group_generic(x, groups = c("Arith", "Compare", "Ops", "Logic", "Math",
"Math2", "Summary", "Complex"), .xname = get_name_in_parent(x))
is_s3_internal_generic(x, .xname = get_name_in_parent(x))
|
x |
Input to check. |
severity |
How severe should the consequences of the assertion be?
Either |
.xname |
Not intended to be used directly. |
groups |
A character vector of S4 group generic groups. |
is_internal_function returns TRUE when the input is a
closure function that calls .Internal. The
assert_* function returns nothing but throw an error if the
corresponding is_* function returns FALSE.
is_s3_generic is based upon
is_s3_generic. Similarly, is_s3_method is based
upon find_generic, internal to pryr, with some ideas from
isS3method.
is_primitive_generic checks for the functions listed by
.S3PrimitiveGenerics.
is_s3_group_generic checks for the functions listed by
.get_internal_S3_generics, internal to the tools package.
is_s4_group_generic checks for the functions listed by
getGroupMembers. S4 group generics are mostly the same
as S3 group generics, except that the not operator, !, is S3 group
generic but not S4, and log2 and log10 are S4
group generic but not S3.
is_s3_internal_generic checks for the functions listed by
.get_internal_S3_generics, internal to the tools package.
internal_generics, internal to pryr works similarly, though
checks for S4 group generics rather than S3 group generics.
There is some discussion of group generics scatterd throughout R-internals.
In particular, see the section on the Mechanics of S4 Dispatch.
https://cran.r-project.org/doc/manuals/r-devel/R-ints.html#Mechanics-of-S4-dispatch
is.function and its assertive wrapper
is_function.
is_closure_function to check for closures/builtin and
special functions.
is_internal_function to check for functions that use the
.Internal interface to C code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # General check for S3 generics and methods
is_s3_generic(is.na)
is_s3_method(is.na.data.frame)
# More specific types of S3 generic
is_s3_primitive_generic(c)
is_s3_group_generic(abs)
is_s3_internal_generic(unlist)
# S4 group generics are mostly the same as S3 group generics
is_s4_group_generic(cosh)
# Renaming functions is fine
not <- `!`
is_s3_group_generic(not)
# Some failures
assertive.base::dont_stop({
assert_is_s3_primitive_generic(exp)
assert_is_s4_group_generic(`!`)
})
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.