1#' Life cycle of the rlang package 2#' 3#' @description 4#' 5#' \Sexpr[results=rd, stage=render]{rlang:::lifecycle("maturing")} 6#' 7#' The rlang package is currently maturing. Unless otherwise stated, 8#' this applies to all its exported functions. Maturing functions are 9#' susceptible to API changes. Only use these in packages if you're 10#' prepared to make changes as the package evolves. See sections below 11#' for a list of functions marked as stable. 12#' 13#' The documentation pages of retired functions contain life cycle 14#' sections that explain the reasons for their retirements. 15#' 16#' 17#' @section Stable functions: 18#' 19#' \Sexpr[results=rd, stage=render]{rlang:::lifecycle("stable")} 20#' 21#' * [eval_tidy()] 22#' * [!!], [!!!] 23#' * [enquo()], [quo()], [quos()] 24#' * [enexpr()], [expr()], [exprs()] 25#' * [sym()], [syms()] 26#' * [new_quosure()], [is_quosure()] 27#' * [missing_arg()], [is_missing()] 28#' 29#' * [quo_get_expr()], [quo_set_expr()] 30#' * [quo_get_env()], [quo_set_env()] 31#' 32#' * [eval_bare()] 33#' 34#' * [set_names()], [names2()] 35#' * [as_function()], [new_function()] 36#' 37#' 38#' @section Experimental functions: 39#' 40#' \Sexpr[results=rd, stage=render]{rlang:::lifecycle("experimental")} 41#' 42#' These functions are not yet part of the rlang API. Expect breaking 43#' changes. 44#' 45#' * [with_env()], [locally()], [env_poke()] 46#' * [pkg_env()], [pkg_env_name()], [ns_env()], [ns_imports_env()], [ns_env_name()] 47#' 48#' * [is_pairlist()], [as_pairlist()], [is_node()], [is_node_list()] 49#' 50#' * [is_definition()], [new_definition()], [is_formulaish()], 51#' [dots_definitions()] 52#' 53#' * [local_options()], [with_options()], [push_options()], 54#' [peek_options()], [peek_option()] 55#' 56#' * [as_bytes()], [chr_unserialise_unicode()] 57#' 58#' * [caller_fn()], [current_fn()] 59#' 60#' 61#' @section Questioning stage: 62#' 63#' \Sexpr[results=rd, stage=render]{rlang:::lifecycle("questioning")} 64#' 65#' 66#' **In the questioning stage as of rlang 0.4.0** 67#' 68#' These functions are likely to be moved to the vctrs package: 69#' 70#' * [lgl()], [int()], etc. 71#' * [new_logical()], [new_integer()], etc. 72#' * [na_lgl], [na_int], [is_lgl_na()], [is_int_na()], etc. 73#' 74#' 75#' **In the questioning stage as of rlang 0.3.0** 76#' 77#' * [child_env()] 78#' * [flatten()], [squash()], and their atomic vector variants 79#' * [modify()] and [prepend()] 80#' * [with_restarts()], [rst_list()], [rst_exists()], [rst_jump()], 81#' [rst_maybe_jump()], [rst_abort()]. It is not clear yet whether we 82#' want to recommend restarts as a style of programming in R. 83#' * [return_from()] and [return_to()]. 84#' * [expr_label()], [expr_name()], and [expr_text()]. 85#' 86#' 87#' **In the questioning stage as of rlang 0.2.0** 88#' 89#' * [UQ()], [UQS()] 90#' * [dots_splice()], [splice()] 91#' 92#' 93#' @section Soft-deprecated functions and arguments: 94#' 95#' \Sexpr[results=rd, stage=render]{rlang:::lifecycle("soft-deprecated")} 96#' 97#' 98#' **Soft-deprecated in rlang 0.4.0** 99#' 100#' * [exiting()]: Handlers are now treated as exiting by default. 101#' * [invoke()]: Use the simpler [exec()] instead. 102#' * [as_logical()], [as_integer()], etc. => `vctrs::vec_cast()`. 103#' * [type_of()], [switch_type()], [coerce_type()], [switch_class()], 104#' [coerce_class()] 105#' 106#' 107#' @section Deprecated functions and arguments: 108#' 109#' \Sexpr[results=rd, stage=render]{rlang:::lifecycle("deprecated")} 110#' 111#' **Bumped to deprecated in rlang 0.4.0** 112#' 113#' * [modify()] and [prepend()]. 114#' * `new_logical_along()`, `new_integer_along()`, 115#' `new_double_along()`, `new_complex_along()`, 116#' `new_character_along()`, `new_raw_along()`, `new_list_along()`. 117#' 118#' * [lang_modify()] => [call_modify()] 119#' * [lang_standardise()] => [call_standardise()] 120#' * [lang_fn()] => [call_fn()] 121#' * [lang_name()] => [call_name()] 122#' * [lang_args()] => [call_args()] 123#' * [lang_args_names()] => [call_args_names()] 124#' * [lang_head()], [lang_tail()] 125#' * [lang()] => [call2()] 126#' * [new_language()] => [new_call()] 127#' * [is_lang()] => [is_call()] 128#' * [is_unary_lang()] => Use the `n` argument of [is_call()] 129#' * [is_binary_lang()] => Use the `n` argument of [is_call()] 130#' * [quo_is_lang()] => [quo_is_call()] 131#' 132#' * [call_modify()]: `.standardise` and `.env` arguments. 133#' 134#' * [is_expr()] => [is_expression()] 135#' * `quo_expr()` => [quo_squash()] 136#' * [parse_quosure()] => [parse_quo()] 137#' * [parse_quosures()] => [parse_quos()] 138#' * Assigning non-quosure objects to quosure lists. 139#' * `as.character()` on quosures. 140#' 141#' * [cnd_signal()]: `.cnd` => `cnd` 142#' * [cnd_signal()]: The `.mufflable` argument no longer has any effect 143#' 144#' * `scoped_names()` => [base::search()] 145#' * `is_scoped()` => [is_attached()] 146#' * `scoped_env()` => [search_env()] 147#' * `scoped_envs()` => [search_envs()] 148#' 149#' * `env_bind_exprs()` => [env_bind_lazy()] 150#' * `env_bind_fns()` => [env_bind_active()] 151#' * Passing a function or formula to `env_depth()`, 152#' `env_poke_parent()`, `env_parent<-`, `env_tail()`, `set_env()`, 153#' `env_clone()`, `env_inherits()`, `env_bind()`, 154#' `local_bindings()`, `with_bindings()`, `env_poke()`, 155#' `env_has()`, `env_get()`, `env_names()`, `env_bind_exprs()` and 156#' `env_bind_fns()`. This internal genericity was causing confusion 157#' (see issue #427). You should now extract the environment 158#' separately before calling these functions. 159#' * [get_env()]: The `env` argument no longer has a default and must be supplied 160#' 161#' * [is_frame()], [global_frame()], [current_frame()], 162#' [ctxt_frame()], [call_frame()], [frame_position()], 163#' [caller_frame()] 164#' 165#' * [ctxt_depth()], [call_depth()], [ctxt_stack()], [call_stack()], 166#' [stack_trim()] 167#' 168#' * [set_attrs()], [mut_attrs()] 169#' 170#' * The `width` and `printer` arguments of [exprs_auto_name()] and 171#' [quos_auto_name()] no longer have any effect. For the same 172#' reason, passing a width as `.named` argument of dots collectors 173#' like `quos()` is deprecated. 174#' 175#' * `as_overscope()` => [as_data_mask()] 176#' * `new_overscope()` => [new_data_mask()] 177#' * `overscope_eval_next()` => [eval_tidy()] 178#' * `overscope_clean()` 179#' 180#' 181#' @section Defunct functions and arguments: 182#' 183#' \Sexpr[results=rd, stage=render]{rlang:::lifecycle("defunct")} 184#' 185#' **Defunct as of rlang 0.4.0** 186#' 187#' * `length()` and `names()` on tidy eval `.data` pronouns. 188#' * Supplying a named `!!!` call. 189#' 190#' @keywords internal 191#' @name lifecycle 192NULL 193 194deprecated <- function() missing_arg() 195