error[E0277]: the trait bound `fn() -> impl T {foo}: T` is not satisfied
--> $DIR/fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:17:9
|
+LL | fn foo() -> impl T<O=()> { S }
+ | --- consider calling this function
+LL |
LL | fn bar(f: impl T<O=()>) {}
| --- ------- required by this bound in `bar`
...
| the trait `T` is not implemented for `fn() -> impl T {foo}`
| help: use parentheses to call the function: `foo()`
-error: aborting due to previous error
+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
+ --> $DIR/fn-ctor-passed-as-arg-where-it-should-have-been-called.rs:19:9
+ |
+LL | fn bar(f: impl T<O=()>) {}
+ | --- ------- required by this bound in `bar`
+...
+LL | let closure = || S;
+ | -- consider calling this closure
+LL | bar(closure);
+ | ^^^^^^^
+ | |
+ | 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]`
+ | help: use parentheses to call the closure: `closure()`
+
+error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0277`.