Introduce `rustc_const_stable` and explain `rustc_const_unstable` (#542)
This commit is contained in:
parent
dadbf0da80
commit
28554c142e
|
|
@ -49,6 +49,28 @@ marks an item as stabilized. To do this, follow the instructions in
|
||||||
|
|
||||||
Note that stable functions may use unstable things in their body.
|
Note that stable functions may use unstable things in their body.
|
||||||
|
|
||||||
|
## rustc_const_unstable
|
||||||
|
|
||||||
|
The `#[rustc_const_unstable(feature = "foo", issue = "1234", reason = "lorem ipsum")]`
|
||||||
|
has the same interface as the `unstable` attribute. It is used to mark
|
||||||
|
`const fn` as having their constness be unstable. This allows you to make a
|
||||||
|
function stable without stabilizing its constness or even just marking an existing
|
||||||
|
stable function as `const fn` without instantly stabilizing the `const fn`ness.
|
||||||
|
|
||||||
|
Furthermore this attribute is needed to mark an intrinsic as `const fn`, because
|
||||||
|
there's no way to add `const` to functions in `extern` blocks for now.
|
||||||
|
|
||||||
|
## rustc_const_stable
|
||||||
|
|
||||||
|
The `#[stable(feature = "foo", "since = "1.420.69")]` attribute explicitly marks
|
||||||
|
a `const fn` as having its constness be `stable`. This attribute can make sense
|
||||||
|
even on an `unstable` function, if that function is called from another
|
||||||
|
`rustc_const_stable` function.
|
||||||
|
|
||||||
|
Furthermore this attribute is needed to mark an intrinsic as callable from
|
||||||
|
`rustc_const_stable` functions.
|
||||||
|
|
||||||
|
|
||||||
## allow_internal_unstable
|
## allow_internal_unstable
|
||||||
|
|
||||||
Macros, compiler desugarings and `const fn`s expose their bodies to the call
|
Macros, compiler desugarings and `const fn`s expose their bodies to the call
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue