error[E0391]: cycle detected when computing type of `foo::{opaque#0}` --> $DIR/in-defining-scope.rs:6:13 | LL | fn foo() -> impl Sized { | ^^^^^^^^^^ | note: ...which requires computing type of opaque `foo::{opaque#0}`... --> $DIR/in-defining-scope.rs:6:13 | LL | fn foo() -> impl Sized { | ^^^^^^^^^^ note: ...which requires type-checking `foo`... --> $DIR/in-defining-scope.rs:6:1 | LL | fn foo() -> impl Sized { | ^^^^^^^^^^^^^^^^^^^^^^ = note: ...which requires computing layout of `foo::{opaque#0}`... = note: ...which requires normalizing `foo::{opaque#0}`... = note: ...which again requires computing type of `foo::{opaque#0}`, completing the cycle note: cycle used when checking that `foo::{opaque#0}` is well-formed --> $DIR/in-defining-scope.rs:6:13 | LL | fn foo() -> impl Sized { | ^^^^^^^^^^ = 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 1 previous error For more information about this error, try `rustc --explain E0391`.