error[E0308]: mismatched types --> $DIR/no_revealing_outside_defining_module.rs:15:19 | LL | pub type Boo = impl ::std::fmt::Debug; | ---------------------- the found opaque type ... LL | let _: &str = bomp(); | ---- ^^^^^^ expected `&str`, found opaque type | | | expected due to this | = note: expected reference `&str` found opaque type `Boo` note: this item must have the opaque type in its signature in order to be able to register hidden types --> $DIR/no_revealing_outside_defining_module.rs:14:4 | LL | fn bomp2() { | ^^^^^ error[E0308]: mismatched types --> $DIR/no_revealing_outside_defining_module.rs:19:5 | LL | pub type Boo = impl ::std::fmt::Debug; | ---------------------- the expected opaque type ... LL | fn bomp() -> boo::Boo { | -------- expected `Boo` because of return type LL | "" | ^^ expected opaque type, found `&str` | = note: expected opaque type `Boo` found reference `&'static str` note: this item must have the opaque type in its signature in order to be able to register hidden types --> $DIR/no_revealing_outside_defining_module.rs:18:4 | LL | fn bomp() -> boo::Boo { | ^^^^ error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0308`.