remove error code from #[rustc_variance]
and document its remains
This commit is contained in:
parent
41edaac716
commit
708861e5b7
14 changed files with 96 additions and 46 deletions
|
@ -1 +1,46 @@
|
|||
#### This error code is internal to the compiler and will not be emitted with normal Rust code.
|
||||
#### Note: this error code is no longer emitted by the compiler.
|
||||
|
||||
This error code shows the variance of a type's generic parameters.
|
||||
|
||||
Erroneous code example:
|
||||
|
||||
```compile_fail
|
||||
// NOTE: this feature is perma-unstable and should *only* be used for
|
||||
// testing purposes.
|
||||
#![feature(rustc_attrs)]
|
||||
|
||||
#[rustc_variance]
|
||||
struct Foo<'a, T> { // error: deliberate error to display type's variance
|
||||
t: &'a mut T,
|
||||
}
|
||||
```
|
||||
|
||||
which produces the following error:
|
||||
|
||||
```text
|
||||
error: [-, o]
|
||||
--> <anon>:4:1
|
||||
|
|
||||
4 | struct Foo<'a, T> {
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
```
|
||||
|
||||
*Note that while `#[rustc_variance]` still exists and is used within the*
|
||||
*compiler, it no longer is marked as `E0208` and instead has no error code.*
|
||||
|
||||
This error is deliberately triggered with the `#[rustc_variance]` attribute
|
||||
(`#![feature(rustc_attrs)]` must be enabled) and helps to show you the variance
|
||||
of the type's generic parameters. You can read more about variance and
|
||||
subtyping in [this section of the Rustnomicon]. For a more in depth look at
|
||||
variance (including a more complete list of common variances) see
|
||||
[this section of the Reference]. For information on how variance is implemented
|
||||
in the compiler, see [this section of `rustc-dev-guide`].
|
||||
|
||||
This error can be easily fixed by removing the `#[rustc_variance]` attribute,
|
||||
the compiler's suggestion to comment it out can be applied automatically with
|
||||
`rustfix`.
|
||||
|
||||
[this section of the Rustnomicon]: https://doc.rust-lang.org/nomicon/subtyping.html
|
||||
[this section of the Reference]: https://doc.rust-lang.org/reference/subtyping.html#variance
|
||||
[this section of `rustc-dev-guide`]: https://rustc-dev-guide.rust-lang.org/variance.html
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue