1 error[E0277]: the trait bound `T: ~const Bar` is not satisfied
2 --> $DIR/trait-where-clause.rs:13:5
5 | ^^^^ the trait `~const Bar` is not implemented for `T`
7 note: the trait `Bar` is implemented for `T`, but that implementation is not `const`
8 --> $DIR/trait-where-clause.rs:13:5
12 note: required by a bound in `Foo::b`
13 --> $DIR/trait-where-clause.rs:7:24
15 LL | fn b() where Self: ~const Bar;
16 | ^^^^^^^^^^ required by this bound in `Foo::b`
17 help: consider further restricting this bound
19 LL | const fn test1<T: ~const Foo + Bar + ~const Bar>() {
22 error[E0277]: the trait bound `T: ~const Bar` is not satisfied
23 --> $DIR/trait-where-clause.rs:15:12
26 | ^ the trait `~const Bar` is not implemented for `T`
28 note: the trait `Bar` is implemented for `T`, but that implementation is not `const`
29 --> $DIR/trait-where-clause.rs:15:12
33 note: required by a bound in `Foo::c`
34 --> $DIR/trait-where-clause.rs:8:13
36 LL | fn c<T: ~const Bar>();
37 | ^^^^^^^^^^ required by this bound in `Foo::c`
38 help: consider further restricting this bound
40 LL | const fn test1<T: ~const Foo + Bar + ~const Bar>() {
43 error[E0277]: the trait bound `T: Bar` is not satisfied
44 --> $DIR/trait-where-clause.rs:27:5
47 | ^^^^ the trait `Bar` is not implemented for `T`
49 note: required by a bound in `Foo::b`
50 --> $DIR/trait-where-clause.rs:7:24
52 LL | fn b() where Self: ~const Bar;
53 | ^^^^^^^^^^ required by this bound in `Foo::b`
54 help: consider further restricting this bound
56 LL | fn test3<T: Foo + Bar>() {
59 error[E0277]: the trait bound `T: Bar` is not satisfied
60 --> $DIR/trait-where-clause.rs:29:12
63 | ^ the trait `Bar` is not implemented for `T`
65 note: required by a bound in `Foo::c`
66 --> $DIR/trait-where-clause.rs:8:13
68 LL | fn c<T: ~const Bar>();
69 | ^^^^^^^^^^ required by this bound in `Foo::c`
70 help: consider further restricting this bound
72 LL | fn test3<T: Foo + Bar>() {
75 error: aborting due to 4 previous errors
77 For more information about this error, try `rustc --explain E0277`.