| error[E0277]: `Foo<T, U>` cannot be sent between threads safely |
| --> $DIR/issue-83857-ub.rs:21:38 |
| | |
| LL | fn generic<T, U>(v: Foo<T, U>, f: fn(<Foo<T, U> as WithAssoc>::Output) -> i32) { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Foo<T, U>` cannot be sent between threads safely |
| | |
| = help: the trait `Send` is not implemented for `Foo<T, U>`, which is required by `Foo<T, U>: WithAssoc` |
| note: required for `Foo<T, U>` to implement `WithAssoc` |
| --> $DIR/issue-83857-ub.rs:14:15 |
| | |
| LL | impl<T: Send> WithAssoc for T { |
| | ---- ^^^^^^^^^ ^ |
| | | |
| | unsatisfied trait bound introduced here |
| help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement |
| | |
| LL | fn generic<T, U>(v: Foo<T, U>, f: fn(<Foo<T, U> as WithAssoc>::Output) -> i32) where Foo<T, U>: Send { |
| | +++++++++++++++++++++ |
| |
| error[E0277]: `Foo<T, U>` cannot be sent between threads safely |
| --> $DIR/issue-83857-ub.rs:21:80 |
| | |
| LL | fn generic<T, U>(v: Foo<T, U>, f: fn(<Foo<T, U> as WithAssoc>::Output) -> i32) { |
| | ________________________________________________________________________________^ |
| LL | | |
| LL | | |
| LL | | f(foo(v)); |
| LL | | |
| LL | | } |
| | |_^ `Foo<T, U>` cannot be sent between threads safely |
| | |
| = help: the trait `Send` is not implemented for `Foo<T, U>`, which is required by `Foo<T, U>: WithAssoc` |
| note: required for `Foo<T, U>` to implement `WithAssoc` |
| --> $DIR/issue-83857-ub.rs:14:15 |
| | |
| LL | impl<T: Send> WithAssoc for T { |
| | ---- ^^^^^^^^^ ^ |
| | | |
| | unsatisfied trait bound introduced here |
| help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement |
| | |
| LL | fn generic<T, U>(v: Foo<T, U>, f: fn(<Foo<T, U> as WithAssoc>::Output) -> i32) where Foo<T, U>: Send { |
| | +++++++++++++++++++++ |
| |
| error[E0277]: `Foo<T, U>` cannot be sent between threads safely |
| --> $DIR/issue-83857-ub.rs:24:11 |
| | |
| LL | f(foo(v)); |
| | --- ^ `Foo<T, U>` cannot be sent between threads safely |
| | | |
| | required by a bound introduced by this call |
| | |
| = help: the trait `Send` is not implemented for `Foo<T, U>` |
| note: required by a bound in `foo` |
| --> $DIR/issue-83857-ub.rs:28:11 |
| | |
| LL | fn foo<T: Send>(x: T) -> <T as WithAssoc>::Output { |
| | ^^^^ required by this bound in `foo` |
| help: consider introducing a `where` clause, but there might be an alternative better way to express this requirement |
| | |
| LL | fn generic<T, U>(v: Foo<T, U>, f: fn(<Foo<T, U> as WithAssoc>::Output) -> i32) where Foo<T, U>: Send { |
| | +++++++++++++++++++++ |
| |
| error: aborting due to 3 previous errors |
| |
| For more information about this error, try `rustc --explain E0277`. |