1 error[E0277]: `a::Inner<T>` doesn't implement `Debug`
2 --> $DIR/derive-macro-missing-bounds.rs:12:21
5 | ----- in this derive macro expansion
6 LL | struct Outer<T>(Inner<T>);
7 | ^^^^^^^^ `a::Inner<T>` cannot be formatted using `{:?}`
9 = help: the trait `Debug` is not implemented for `a::Inner<T>`
10 = note: add `#[derive(Debug)]` to `a::Inner<T>` or manually `impl Debug for a::Inner<T>`
11 = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
12 help: consider introducing a `where` bound, but there might be an alternative better way to express this requirement
14 LL | struct Outer<T>(Inner<T>) where a::Inner<T>: Debug;
15 | ++++++++++++++++++++++++
17 error[E0277]: the trait bound `T: c::Trait` is not satisfied
18 --> $DIR/derive-macro-missing-bounds.rs:41:21
21 | ----- in this derive macro expansion
22 LL | struct Outer<T>(Inner<T>);
23 | ^^^^^^^^ the trait `c::Trait` is not implemented for `T`
25 note: required because of the requirements on the impl of `Debug` for `c::Inner<T>`
26 --> $DIR/derive-macro-missing-bounds.rs:34:28
28 LL | impl<T: Debug + Trait> Debug for Inner<T> {
30 = note: 1 redundant requirement hidden
31 = note: required because of the requirements on the impl of `Debug` for `&c::Inner<T>`
32 = note: required for the cast to the object type `dyn Debug`
33 = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
34 help: consider restricting type parameter `T`
36 LL | struct Outer<T: c::Trait>(Inner<T>);
39 error[E0277]: the trait bound `T: d::Trait` is not satisfied
40 --> $DIR/derive-macro-missing-bounds.rs:56:21
43 | ----- in this derive macro expansion
44 LL | struct Outer<T>(Inner<T>);
45 | ^^^^^^^^ the trait `d::Trait` is not implemented for `T`
47 note: required because of the requirements on the impl of `Debug` for `d::Inner<T>`
48 --> $DIR/derive-macro-missing-bounds.rs:49:13
50 LL | impl<T> Debug for Inner<T> where T: Debug, T: Trait {
52 = note: 1 redundant requirement hidden
53 = note: required because of the requirements on the impl of `Debug` for `&d::Inner<T>`
54 = note: required for the cast to the object type `dyn Debug`
55 = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
56 help: consider restricting type parameter `T`
58 LL | struct Outer<T: d::Trait>(Inner<T>);
61 error[E0277]: the trait bound `T: e::Trait` is not satisfied
62 --> $DIR/derive-macro-missing-bounds.rs:71:21
65 | ----- in this derive macro expansion
66 LL | struct Outer<T>(Inner<T>);
67 | ^^^^^^^^ the trait `e::Trait` is not implemented for `T`
69 note: required because of the requirements on the impl of `Debug` for `e::Inner<T>`
70 --> $DIR/derive-macro-missing-bounds.rs:64:13
72 LL | impl<T> Debug for Inner<T> where T: Debug + Trait {
74 = note: 1 redundant requirement hidden
75 = note: required because of the requirements on the impl of `Debug` for `&e::Inner<T>`
76 = note: required for the cast to the object type `dyn Debug`
77 = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
78 help: consider restricting type parameter `T`
80 LL | struct Outer<T: e::Trait>(Inner<T>);
83 error[E0277]: the trait bound `T: f::Trait` is not satisfied
84 --> $DIR/derive-macro-missing-bounds.rs:86:21
87 | ----- in this derive macro expansion
88 LL | struct Outer<T>(Inner<T>);
89 | ^^^^^^^^ the trait `f::Trait` is not implemented for `T`
91 note: required because of the requirements on the impl of `Debug` for `f::Inner<T>`
92 --> $DIR/derive-macro-missing-bounds.rs:79:20
94 LL | impl<T: Debug> Debug for Inner<T> where T: Trait {
96 = note: 1 redundant requirement hidden
97 = note: required because of the requirements on the impl of `Debug` for `&f::Inner<T>`
98 = note: required for the cast to the object type `dyn Debug`
99 = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
100 help: consider restricting type parameter `T`
102 LL | struct Outer<T: f::Trait>(Inner<T>);
105 error: aborting due to 5 previous errors
107 For more information about this error, try `rustc --explain E0277`.