]> git.lizzy.rs Git - rust.git/commitdiff
add diagnostics for E0437 and E0438
authorAndrew Paseltiner <apaseltiner@gmail.com>
Wed, 22 Jul 2015 20:52:40 +0000 (16:52 -0400)
committerAndrew Paseltiner <apaseltiner@gmail.com>
Wed, 22 Jul 2015 20:53:50 +0000 (16:53 -0400)
src/librustc_resolve/diagnostics.rs

index 5a941c757fc6d939543c65511daba3efff7559f5..9f8a5c90d4e1cb0c02c09a25d827497eb5316133 100644 (file)
@@ -426,6 +426,57 @@ fn b() {}
 Please verify you didn't misspell the import's name.
 "##,
 
+E0437: r##"
+Trait impls can only implement associated types that are members of the trait in
+question. This error indicates that you attempted to implement an associated
+type whose name does not match the name of any associated type in the trait.
+
+Here is an example that demonstrates the error:
+
+```
+trait Foo {}
+
+impl Foo for i32 {
+    type Bar = bool;
+}
+```
+
+The solution to this problem is to remove the extraneous associated type:
+
+```
+trait Foo {}
+
+impl Foo for i32 {}
+```
+"##,
+
+E0438: r##"
+Trait impls can only implement associated constants that are members of the
+trait in question. This error indicates that you attempted to implement an
+associated constant whose name does not match the name of any associated
+constant in the trait.
+
+Here is an example that demonstrates the error:
+
+```
+#![feature(associated_consts)]
+
+trait Foo {}
+
+impl Foo for i32 {
+    const BAR: bool = true;
+}
+```
+
+The solution to this problem is to remove the extraneous associated constant:
+
+```
+trait Foo {}
+
+impl Foo for i32 {}
+```
+"##
+
 }
 
 register_diagnostics! {
@@ -468,6 +519,4 @@ fn b() {}
     E0432, // unresolved import
     E0434, // can't capture dynamic environment in a fn item
     E0435, // attempt to use a non-constant value in a constant
-    E0437, // type is not a member of trait
-    E0438, // const is not a member of trait
 }