error[E0562]: `impl Trait` is not allowed in generics
  --> $DIR/issue-47715.rs:9:37
   |
LL | struct Container<T: Iterable<Item = impl Foo>> {
   |                                     ^^^^^^^^
   |
   = note: `impl Trait` is only allowed in arguments and return types of functions and methods

error[E0562]: `impl Trait` is not allowed in generics
  --> $DIR/issue-47715.rs:14:30
   |
LL | enum Enum<T: Iterable<Item = impl Foo>> {
   |                              ^^^^^^^^
   |
   = note: `impl Trait` is only allowed in arguments and return types of functions and methods

error[E0562]: `impl Trait` is not allowed in generics
  --> $DIR/issue-47715.rs:19:32
   |
LL | union Union<T: Iterable<Item = impl Foo> + Copy> {
   |                                ^^^^^^^^
   |
   = note: `impl Trait` is only allowed in arguments and return types of functions and methods

error[E0562]: `impl Trait` is not allowed in generics
  --> $DIR/issue-47715.rs:24:30
   |
LL | type Type<T: Iterable<Item = impl Foo>> = T;
   |                              ^^^^^^^^
   |
   = note: `impl Trait` is only allowed in arguments and return types of functions and methods

error: aborting due to 4 previous errors

For more information about this error, try `rustc --explain E0562`.
