error[E0277]: `::Item` doesn't implement `Debug` --> $DIR/impl-trait-with-missing-bounds.rs:6:13 | LL | qux(constraint); | --- ^^^^^^^^^^ the trait `Debug` is not implemented for `::Item` | | | required by a bound introduced by this call | note: required by a bound in `qux` --> $DIR/impl-trait-with-missing-bounds.rs:50:16 | LL | fn qux(_: impl std::fmt::Debug) {} | ^^^^^^^^^^^^^^^ required by this bound in `qux` help: introduce a type parameter with a trait bound instead of using `impl Trait` | LL - fn foo(constraints: impl Iterator) { LL + fn foo(constraints: I) where ::Item: Debug { | error[E0277]: `::Item` doesn't implement `Debug` --> $DIR/impl-trait-with-missing-bounds.rs:14:13 | LL | qux(constraint); | --- ^^^^^^^^^^ the trait `Debug` is not implemented for `::Item` | | | required by a bound introduced by this call | note: required by a bound in `qux` --> $DIR/impl-trait-with-missing-bounds.rs:50:16 | LL | fn qux(_: impl std::fmt::Debug) {} | ^^^^^^^^^^^^^^^ required by this bound in `qux` help: introduce a type parameter with a trait bound instead of using `impl Trait` | LL - fn bar(t: T, constraints: impl Iterator) where T: std::fmt::Debug { LL + fn bar(t: T, constraints: I) where T: std::fmt::Debug, ::Item: Debug { | error[E0277]: `::Item` doesn't implement `Debug` --> $DIR/impl-trait-with-missing-bounds.rs:22:13 | LL | qux(constraint); | --- ^^^^^^^^^^ the trait `Debug` is not implemented for `::Item` | | | required by a bound introduced by this call | note: required by a bound in `qux` --> $DIR/impl-trait-with-missing-bounds.rs:50:16 | LL | fn qux(_: impl std::fmt::Debug) {} | ^^^^^^^^^^^^^^^ required by this bound in `qux` help: introduce a type parameter with a trait bound instead of using `impl Trait` | LL - fn baz(t: impl std::fmt::Debug, constraints: impl Iterator) { LL + fn baz(t: impl std::fmt::Debug, constraints: I) where ::Item: Debug { | error[E0277]: `::Item` doesn't implement `Debug` --> $DIR/impl-trait-with-missing-bounds.rs:30:13 | LL | qux(constraint); | --- ^^^^^^^^^^ the trait `Debug` is not implemented for `::Item` | | | required by a bound introduced by this call | note: required by a bound in `qux` --> $DIR/impl-trait-with-missing-bounds.rs:50:16 | LL | fn qux(_: impl std::fmt::Debug) {} | ^^^^^^^^^^^^^^^ required by this bound in `qux` help: introduce a type parameter with a trait bound instead of using `impl Trait` | LL - fn bat(t: T, constraints: impl Iterator, _: I) { LL + fn bat(t: T, constraints: U, _: I) where ::Item: Debug { | error[E0277]: `::Item` doesn't implement `Debug` --> $DIR/impl-trait-with-missing-bounds.rs:37:13 | LL | qux(constraint); | --- ^^^^^^^^^^ the trait `Debug` is not implemented for `::Item` | | | required by a bound introduced by this call | note: required by a bound in `qux` --> $DIR/impl-trait-with-missing-bounds.rs:50:16 | LL | fn qux(_: impl std::fmt::Debug) {} | ^^^^^^^^^^^^^^^ required by this bound in `qux` help: introduce a type parameter with a trait bound instead of using `impl Trait` | LL - fn bak(constraints: impl Iterator + std::fmt::Debug) { LL + fn bak(constraints: I) where ::Item: Debug { | error[E0277]: `::Item` doesn't implement `Debug` --> $DIR/impl-trait-with-missing-bounds.rs:45:13 | LL | qux(constraint); | --- ^^^^^^^^^^ the trait `Debug` is not implemented for `::Item` | | | required by a bound introduced by this call | note: required by a bound in `qux` --> $DIR/impl-trait-with-missing-bounds.rs:50:16 | LL | fn qux(_: impl std::fmt::Debug) {} | ^^^^^^^^^^^^^^^ required by this bound in `qux` help: introduce a type parameter with a trait bound instead of using `impl Trait` | LL - fn baw<>(constraints: impl Iterator) { LL + fn baw(constraints: I) where ::Item: Debug { | error: aborting due to 6 previous errors For more information about this error, try `rustc --explain E0277`.