error[E0308]: mismatched types
  --> $DIR/issue-59819.rs:28:18
   |
LL |     let y: i32 = x;
   |            ---   ^ expected `i32`, found struct `Foo`
   |            |
   |            expected due to this
   |
help: consider dereferencing the type
   |
LL |     let y: i32 = *x;
   |                  +

error[E0308]: mismatched types
  --> $DIR/issue-59819.rs:30:18
   |
LL |     let b: i32 = a;
   |            ---   ^ expected `i32`, found `&{integer}`
   |            |
   |            expected due to this
   |
help: consider dereferencing the borrow
   |
LL |     let b: i32 = *a;
   |                  +

error[E0308]: mismatched types
  --> $DIR/issue-59819.rs:34:21
   |
LL |     let g: String = f;
   |            ------   ^- help: try using a conversion method: `.to_string()`
   |            |        |
   |            |        expected struct `String`, found struct `Bar`
   |            expected due to this

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0308`.
