error[E0283]: type annotations needed: cannot satisfy `Bar: Send` --> $DIR/in-where-clause.rs:13:9 | LL | [0; 1 + 2] | ^^^^^ | = note: cannot satisfy `Bar: Send` note: required by a bound in `foo` --> $DIR/in-where-clause.rs:11:10 | LL | fn foo() -> Bar | --- required by a bound in this function LL | where LL | Bar: Send, | ^^^^ required by this bound in `foo` error[E0391]: cycle detected when computing type of opaque `Bar::{opaque#0}` --> $DIR/in-where-clause.rs:5:12 | LL | type Bar = impl Sized; | ^^^^^^^^^^ | note: ...which requires borrow-checking `foo`... --> $DIR/in-where-clause.rs:9:1 | LL | / fn foo() -> Bar LL | | where LL | | Bar: Send, | |______________^ note: ...which requires promoting constants in MIR for `foo`... --> $DIR/in-where-clause.rs:9:1 | LL | / fn foo() -> Bar LL | | where LL | | Bar: Send, | |______________^ note: ...which requires checking if `foo` contains FFI-unwind calls... --> $DIR/in-where-clause.rs:9:1 | LL | / fn foo() -> Bar LL | | where LL | | Bar: Send, | |______________^ note: ...which requires building MIR for `foo`... --> $DIR/in-where-clause.rs:9:1 | LL | / fn foo() -> Bar LL | | where LL | | Bar: Send, | |______________^ note: ...which requires match-checking `foo`... --> $DIR/in-where-clause.rs:9:1 | LL | / fn foo() -> Bar LL | | where LL | | Bar: Send, | |______________^ note: ...which requires type-checking `foo`... --> $DIR/in-where-clause.rs:9:1 | LL | / fn foo() -> Bar LL | | where LL | | Bar: Send, | |______________^ note: ...which requires computing revealed normalized predicates of `foo::{constant#0}`... --> $DIR/in-where-clause.rs:13:9 | LL | [0; 1 + 2] | ^^^^^ = note: ...which requires revealing opaque types in `[Binder { value: TraitPredicate(, polarity:Positive), bound_vars: [] }]`... note: ...which requires computing type of `Bar::{opaque#0}`... --> $DIR/in-where-clause.rs:5:12 | LL | type Bar = impl Sized; | ^^^^^^^^^^ = note: ...which again requires computing type of opaque `Bar::{opaque#0}`, completing the cycle = note: cycle used when evaluating trait selection obligation `Bar: core::marker::Send` = note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information error: aborting due to 2 previous errors Some errors have detailed explanations: E0283, E0391. For more information about an error, try `rustc --explain E0283`.