error[E0271]: type mismatch resolving ` impl Sized {hi} as FnOnce<()>>::Output == Box` --> $DIR/issue-98608.rs:4:39 | LL | fn hi() -> impl Sized { std::ptr::null::() } | ---------- the found opaque type ... LL | let b: Box Box> = Box::new(hi); | ^^^^^^^^^^^^ expected struct `Box`, found opaque type | = note: expected struct `Box` found opaque type `impl Sized` = note: required for the cast from `fn() -> impl Sized {hi}` to the object type `dyn Fn() -> Box` error: aborting due to previous error For more information about this error, try `rustc --explain E0271`.