| #### This error code is internal to the compiler and will not be emitted with normal Rust code. | |
| Feature declared with conflicting stability requirements. | |
| ```compile_fail,E0711 | |
| // NOTE: this attribute is perma-unstable and should *never* be used outside of | |
| // stdlib and the compiler. | |
| #![feature(staged_api)] | |
| #![stable(feature = "...", since = "1.0.0")] | |
| #[stable(feature = "foo", since = "1.0.0")] | |
| fn foo_stable_1_0_0() {} | |
| // error: feature `foo` is declared stable since 1.29.0 | |
| #[stable(feature = "foo", since = "1.29.0")] | |
| fn foo_stable_1_29_0() {} | |
| // error: feature `foo` is declared unstable | |
| #[unstable(feature = "foo", issue = "none")] | |
| fn foo_unstable() {} | |
| ``` | |
| In the above example, the `foo` feature is first defined to be stable since | |
| 1.0.0, but is then re-declared stable since 1.29.0. This discrepancy in | |
| versions causes an error. Furthermore, `foo` is then re-declared as unstable, | |
| again the conflict causes an error. | |
| This error can be fixed by splitting the feature, this allows any | |
| stability requirements and removes any possibility of conflict. |