Skip to content

Commit 687f603

Browse files
authored
Update docs for deprecated attribute (#1338)
1 parent 0c02acd commit 687f603

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

src/stability.md

+15-18
Original file line numberDiff line numberDiff line change
@@ -121,38 +121,35 @@ Always ping @rust-lang/wg-const-eval if you are adding more
121121

122122
## staged_api
123123

124-
Any crate that uses the `stable`, `unstable`, or `rustc_deprecated` attributes
125-
must include the `#![feature(staged_api)]` attribute on the crate.
124+
Any crate that uses the `stable` or `unstable` attributes must include the
125+
`#![feature(staged_api)]` attribute on the crate.
126126

127-
## rustc_deprecated
127+
## deprecated
128128

129-
The deprecation system shares the same infrastructure as the stable/unstable
130-
attributes. The `rustc_deprecated` attribute is similar to the [`deprecated`
131-
attribute]. It was previously called `deprecated`, but was split off when
132-
`deprecated` was stabilized. The `deprecated` attribute cannot be used in a
133-
`staged_api` crate, `rustc_deprecated` must be used instead. The deprecated
134-
item must also have a `stable` or `unstable` attribute.
129+
Deprecations in the standard library are nearly identical to deprecations in
130+
user code. When `#[deprecated]` is used on an item, it must also have a `stable`
131+
or `unstable `attribute.
135132

136-
`rustc_deprecated` has the following form:
133+
`deprecated` has the following form:
137134

138135
```rust,ignore
139-
#[rustc_deprecated(
136+
#[deprecated(
140137
since = "1.38.0",
141-
reason = "explanation for deprecation",
138+
note = "explanation for deprecation",
142139
suggestion = "other_function"
143140
)]
144141
```
145142

146143
The `suggestion` field is optional. If given, it should be a string that can be
147144
used as a machine-applicable suggestion to correct the warning. This is
148145
typically used when the identifier is renamed, but no other significant changes
149-
are necessary.
146+
are necessary. When the `suggestion` field is used, you need to have
147+
`#![feature(deprecated_suggestion)]` at the crate root.
150148

151-
Another difference from the `deprecated` attribute is that the `since` field is
152-
actually checked against the current version of `rustc`. If `since` is in a
153-
future version, then the `deprecated_in_future` lint is triggered which is
154-
default `allow`, but most of the standard library raises it to a warning with
149+
Another difference from user code is that the `since` field is actually checked
150+
against the current version of `rustc`. If `since` is in a future version, then
151+
the `deprecated_in_future` lint is triggered which is default `allow`, but most
152+
of the standard library raises it to a warning with
155153
`#![warn(deprecated_in_future)]`.
156154

157-
[`deprecated` attribute]: https://doc.rust-lang.org/reference/attributes/diagnostics.html#the-deprecated-attribute
158155
[blog]: https://www.ralfj.de/blog/2018/07/19/const.html

0 commit comments

Comments
 (0)