diff --git a/src/librustc/diagnostics.rs b/src/librustc/diagnostics.rs index 86dd363993aec..cde8e7a6d1e13 100644 --- a/src/librustc/diagnostics.rs +++ b/src/librustc/diagnostics.rs @@ -989,6 +989,41 @@ enum Method { GET, POST } ``` "##, +E0229: r##" +An associated type binding was done outside of the type parameter declaration +and `where` clause. Erroneous code example: + +``` +pub trait Foo { + type A; + fn boo(&self) -> ::A; +} + +struct Bar; + +impl Foo for isize { + type A = usize; + fn boo(&self) -> usize { 42 } +} + +fn baz(x: &>::A) {} +// error: associated type bindings are not allowed here +``` + +To solve this error, please move the type bindings in the type parameter +declaration: + +``` +fn baz>(x: &::A) {} // ok! +``` + +or in the `where` clause: + +``` +fn baz(x: &::A) where I: Foo {} +``` +"##, + E0261: r##" When using a lifetime like `'a` in a type, it must be declared before being used. @@ -2241,7 +2276,6 @@ register_diagnostics! { // E0006 // merged with E0005 // E0134, // E0135, - E0229, // associated type bindings are not allowed here E0278, // requirement is not satisfied E0279, // requirement is not satisfied E0280, // requirement is not satisfied