error[E0308]: mismatched types --> $DIR/issue-74282.rs:8:15 | LL | type Closure = impl Fn() -> u64; | ---------------- the expected opaque type ... LL | Anonymous(|| { | _______________^ LL | | 3 LL | | }) | |_____^ expected closure, found a different closure | = note: expected opaque type `Closure` found closure `[closure@$DIR/issue-74282.rs:8:15: 10:6]` = note: no two closures, even if identical, have the same type = help: consider boxing your closure and/or using it as a trait object error[E0308]: mismatched types --> $DIR/issue-74282.rs:8:5 | LL | fn main() { | - expected `()` because of default return type LL | let y = || -> Closure { || 3 }; LL | / Anonymous(|| { LL | | 3 LL | | }) | | ^- help: consider using a semicolon here: `;` | |______| | expected `()`, found struct `Anonymous` error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0308`.