Rollup merge of #73236 - GuillaumeGomez:cleanup-e0666, r=Dylan-DPC

Clean up E0666 explanation

r? @Dylan-DPC
This commit is contained in:
Dylan DPC 2020-06-12 12:28:29 +02:00 committed by GitHub
commit b4cb12fd21
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,21 +1,25 @@
`impl Trait` types cannot appear nested in the
generic arguments of other `impl Trait` types.
`impl Trait` types cannot appear nested in the generic arguments of other
`impl Trait` types.
Example of erroneous code:
Erroneous code example:
```compile_fail,E0666
trait MyGenericTrait<T> {}
trait MyInnerTrait {}
fn foo(bar: impl MyGenericTrait<impl MyInnerTrait>) {}
fn foo(
bar: impl MyGenericTrait<impl MyInnerTrait>, // error!
) {}
```
Type parameters for `impl Trait` types must be
explicitly defined as named generic parameters:
Type parameters for `impl Trait` types must be explicitly defined as named
generic parameters:
```
trait MyGenericTrait<T> {}
trait MyInnerTrait {}
fn foo<T: MyInnerTrait>(bar: impl MyGenericTrait<T>) {}
fn foo<T: MyInnerTrait>(
bar: impl MyGenericTrait<T>, // ok!
) {}
```