Error code E0208
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:
#![allow(unused)] fn main() { // NOTE: this feature is perma-unstable and should *only* be used for // testing purposes. #![allow(internal_features)] #![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:
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 Rustonomicon. 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
.