#### 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] --> :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