error: opaque type's hidden type cannot be another opaque type from the same scope --> $DIR/issue-70877.rs:31:12 | LL | return func(&"oof"); | ^^^^^^^^^^^^ one of the two opaque types used here has to be outside its defining scope | note: opaque type whose hidden type is being assigned --> $DIR/issue-70877.rs:28:19 | LL | fn oof(_: Foo) -> impl std::fmt::Debug { | ^^^^^^^^^^^^^^^^^^^^ note: opaque type being used as hidden type --> $DIR/issue-70877.rs:4:15 | LL | type FooRet = impl std::fmt::Debug; | ^^^^^^^^^^^^^^^^^^^^ error: aborting due to 1 previous error