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