| error[E0391]: cycle detected when processing `cycle1::{{impl-Trait}}` |
| --> $DIR/auto-trait-leak.rs:24:16 |
| | |
| LL | fn cycle1() -> impl Clone { |
| | ^^^^^^^^^^ |
| | |
| note: ...which requires processing `cycle1`... |
| --> $DIR/auto-trait-leak.rs:24:1 |
| | |
| LL | fn cycle1() -> impl Clone { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires evaluating trait selection obligation `impl std::clone::Clone: std::marker::Send`... |
| note: ...which requires processing `cycle2::{{impl-Trait}}`... |
| --> $DIR/auto-trait-leak.rs:33:16 |
| | |
| LL | fn cycle2() -> impl Clone { |
| | ^^^^^^^^^^ |
| note: ...which requires processing `cycle2`... |
| --> $DIR/auto-trait-leak.rs:33:1 |
| | |
| LL | fn cycle2() -> impl Clone { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires evaluating trait selection obligation `impl std::clone::Clone: std::marker::Send`... |
| = note: ...which again requires processing `cycle1::{{impl-Trait}}`, completing the cycle |
| |
| error[E0391]: cycle detected when processing `cycle1::{{impl-Trait}}` |
| --> $DIR/auto-trait-leak.rs:24:16 |
| | |
| LL | fn cycle1() -> impl Clone { |
| | ^^^^^^^^^^ |
| | |
| note: ...which requires processing `cycle1`... |
| --> $DIR/auto-trait-leak.rs:24:1 |
| | |
| LL | fn cycle1() -> impl Clone { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
| note: ...which requires evaluating trait selection obligation `impl std::clone::Clone: std::marker::Send`... |
| note: ...which requires processing `cycle2::{{impl-Trait}}`... |
| --> $DIR/auto-trait-leak.rs:33:16 |
| | |
| LL | fn cycle2() -> impl Clone { |
| | ^^^^^^^^^^ |
| note: ...which requires processing `cycle2`... |
| --> $DIR/auto-trait-leak.rs:33:1 |
| | |
| LL | fn cycle2() -> impl Clone { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
| = note: ...which again requires processing `cycle1::{{impl-Trait}}`, completing the cycle |
| |
| error[E0277]: `std::rc::Rc<std::string::String>` cannot be sent between threads safely |
| --> $DIR/auto-trait-leak.rs:27:5 |
| | |
| LL | send(cycle2().clone()); |
| | ^^^^ `std::rc::Rc<std::string::String>` cannot be sent between threads safely |
| | |
| = help: within `impl std::clone::Clone`, the trait `std::marker::Send` is not implemented for `std::rc::Rc<std::string::String>` |
| = note: required because it appears within the type `impl std::clone::Clone` |
| note: required by `send` |
| --> $DIR/auto-trait-leak.rs:16:1 |
| | |
| LL | fn send<T: Send>(_: T) {} |
| | ^^^^^^^^^^^^^^^^^^^^^^ |
| |
| error: aborting due to 3 previous errors |
| |
| Some errors occurred: E0277, E0391. |
| For more information about an error, try `rustc --explain E0277`. |