error[E0308]: mismatched types
  --> $DIR/issue-106182.rs:7:12
   |
LL |     match x {
   |           - this expression has type `&_S`
LL |         _S(& (mut _y), _v) => {
   |            ^^^^^^^^^^ expected `u32`, found `&_`
   |
   = note:   expected type `u32`
           found reference `&_`
help: consider removing `&` from the pattern
   |
LL -         _S(& (mut _y), _v) => {
LL +         _S(mut _y, _v) => {
   |

error: aborting due to 1 previous error

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