error: concrete type differs from previous defining opaque type use
  --> $DIR/issue-52843-closure-constrain.rs:10:16
   |
LL |     let null = || -> Opaque { 0 };
   |                ^^^^^^^^^^^^^^^^^^ expected `String`, got `i32`
   |
note: previous use here
  --> $DIR/issue-52843-closure-constrain.rs:9:5
   |
LL |     fn _unused() -> Opaque { String::new() }
   |     ^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to previous error

