| error: item does not constrain `FooRet::{opaque#0}` | 
 |   --> $DIR/issue-70877.rs:25:8 | 
 |    | | 
 | LL | pub fn ham() -> Foo { | 
 |    |        ^^^ | 
 |    | | 
 |    = note: consider removing `#[define_opaque]` or adding an empty `#[define_opaque()]` | 
 | note: this opaque type is supposed to be constrained | 
 |   --> $DIR/issue-70877.rs:18:19 | 
 |    | | 
 | LL | pub type FooRet = impl std::fmt::Debug; | 
 |    |                   ^^^^^^^^^^^^^^^^^^^^ | 
 |  | 
 | error: item does not constrain `FooRet::{opaque#0}` | 
 |   --> $DIR/issue-70877.rs:30:8 | 
 |    | | 
 | LL | pub fn oof() -> impl std::fmt::Debug { | 
 |    |        ^^^ | 
 |    | | 
 |    = note: consider removing `#[define_opaque]` or adding an empty `#[define_opaque()]` | 
 | note: this opaque type is supposed to be constrained | 
 |   --> $DIR/issue-70877.rs:18:19 | 
 |    | | 
 | LL | pub type FooRet = impl std::fmt::Debug; | 
 |    |                   ^^^^^^^^^^^^^^^^^^^^ | 
 |  | 
 | error: item does not constrain `Foo::{opaque#0}` | 
 |   --> $DIR/issue-70877.rs:30:8 | 
 |    | | 
 | LL | pub fn oof() -> impl std::fmt::Debug { | 
 |    |        ^^^ | 
 |    | | 
 |    = note: consider removing `#[define_opaque]` or adding an empty `#[define_opaque()]` | 
 | note: this opaque type is supposed to be constrained | 
 |   --> $DIR/issue-70877.rs:23:16 | 
 |    | | 
 | LL | pub type Foo = impl Iterator<Item = FooItem>; | 
 |    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | 
 |  | 
 | error: opaque type's hidden type cannot be another opaque type from the same scope | 
 |   --> $DIR/issue-70877.rs:35: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:30:17 | 
 |    | | 
 | LL | pub fn oof() -> impl std::fmt::Debug { | 
 |    |                 ^^^^^^^^^^^^^^^^^^^^ | 
 | note: opaque type being used as hidden type | 
 |   --> $DIR/issue-70877.rs:18:19 | 
 |    | | 
 | LL | pub type FooRet = impl std::fmt::Debug; | 
 |    |                   ^^^^^^^^^^^^^^^^^^^^ | 
 |  | 
 | error: aborting due to 4 previous errors | 
 |  |