Rollup merge of #73236 - GuillaumeGomez:cleanup-e0666, r=Dylan-DPC
Clean up E0666 explanation r? @Dylan-DPC
This commit is contained in:
commit
b4cb12fd21
1 changed files with 11 additions and 7 deletions
|
@ -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!
|
||||
) {}
|
||||
```
|
||||
|
|
Loading…
Reference in a new issue