Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Error code E0711

This error code is internal to the compiler and will not be emitted with normal Rust code.

Feature declared with conflicting stability requirements.

#![allow(unused)] fn main() { // 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.