1 error[E0277]: the trait bound `fn() -> impl T {foo}: T` is not satisfied
2 --> $DIR/fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:17:9
4 LL | fn foo() -> impl T<O=()> { S }
5 | --- consider calling this function
8 | --- ^^^ the trait `T` is not implemented for `fn() -> impl T {foo}`
10 | required by a bound introduced by this call
12 note: required by a bound in `bar`
13 --> $DIR/fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:14:16
15 LL | fn bar(f: impl T<O=()>) {}
16 | ^^^^^^^ required by this bound in `bar`
17 help: use parentheses to call the function
22 error[E0277]: the trait bound `[closure@$DIR/fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:18:19: 18:23]: T` is not satisfied
23 --> $DIR/fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:19:9
25 LL | let closure = || S;
26 | -- consider calling this closure
28 | --- ^^^^^^^ the trait `T` is not implemented for `[closure@$DIR/fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:18:19: 18:23]`
30 | required by a bound introduced by this call
32 note: required by a bound in `bar`
33 --> $DIR/fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:14:16
35 LL | fn bar(f: impl T<O=()>) {}
36 | ^^^^^^^ required by this bound in `bar`
37 help: use parentheses to call the closure
42 error: aborting due to 2 previous errors
44 For more information about this error, try `rustc --explain E0277`.