]> git.lizzy.rs Git - rust.git/commitdiff
Clarify the short explanation of E0207
authorNickolay Ponomarev <asqueella@gmail.com>
Sun, 28 Apr 2019 19:32:28 +0000 (22:32 +0300)
committerNickolay Ponomarev <asqueella@gmail.com>
Sun, 28 Apr 2019 20:01:26 +0000 (23:01 +0300)
- Use the terms from the reference <https://doc.rust-lang.org/reference/items/implementations.html>
- Add code snippets to explain the terms

src/librustc_typeck/error_codes.rs

index ba67593ce968ae426de0994843e7398c479ca948..ab4ab46341de1c1f95f2cd73140993ce77d3bf83 100644 (file)
@@ -1943,9 +1943,11 @@ impl Copy for &'static mut Bar { } // error
 Any type parameter or lifetime parameter of an `impl` must meet at least one of
 the following criteria:
 
- - it appears in the self type of the impl
- - for a trait impl, it appears in the trait reference
- - it is bound as an associated type
+ - it appears in the _implementing type_ of the impl, e.g. `impl<T> Foo<T>`
+ - for a trait impl, it appears in the _implemented trait_, e.g.
+   `impl<T> SomeTrait<T> for Foo`
+ - it is bound as an associated type, e.g. `impl<T, U> SomeTrait for T
+   where T: AnotherTrait<AssocType=U>`
 
 ### Error example 1
 
@@ -1964,9 +1966,9 @@ fn get(&self) -> T {
 }
 ```
 
-The problem is that the parameter `T` does not appear in the self type (`Foo`)
-of the impl. In this case, we can fix the error by moving the type parameter
-from the `impl` to the method `get`:
+The problem is that the parameter `T` does not appear in the implementing type
+(`Foo`) of the impl. In this case, we can fix the error by moving the type
+parameter from the `impl` to the method `get`:
 
 
 ```