error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:7:9
   |
LL |     match x {
   |           - this expression has type `Arc<Option<{integer}>>`
...
LL |         Some(_) => {}
   |         ^^^^^^^ expected `Arc<Option<{integer}>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<{integer}>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match *x {
   |           +

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:9:9
   |
LL |     match x {
   |           - this expression has type `Arc<Option<{integer}>>`
...
LL |         None => {}
   |         ^^^^ expected `Arc<Option<{integer}>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<{integer}>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match *x {
   |           +

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:16:9
   |
LL |     match &x {
   |           -- this expression has type `&Arc<Option<{integer}>>`
...
LL |         Some(_) => {}
   |         ^^^^^^^ expected `Arc<Option<{integer}>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<{integer}>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match &*x {
   |            +

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:18:9
   |
LL |     match &x {
   |           -- this expression has type `&Arc<Option<{integer}>>`
...
LL |         None => {}
   |         ^^^^ expected `Arc<Option<{integer}>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<{integer}>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match &*x {
   |            +

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:26:9
   |
LL |     match y {
   |           - this expression has type `Box<Option<{integer}>>`
...
LL |         Some(_) => {}
   |         ^^^^^^^ expected `Box<Option<{integer}>>`, found `Option<_>`
   |
   = note: expected struct `Box<Option<{integer}>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match *y {
   |           +

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:28:9
   |
LL |     match y {
   |           - this expression has type `Box<Option<{integer}>>`
...
LL |         None => {}
   |         ^^^^ expected `Box<Option<{integer}>>`, found `Option<_>`
   |
   = note: expected struct `Box<Option<{integer}>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match *y {
   |           +

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:36:9
   |
LL |     match z as Arc<Option<i32>> {
   |           --------------------- this expression has type `Arc<Option<i32>>`
...
LL |         Some(_) => {}
   |         ^^^^^^^ expected `Arc<Option<i32>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<i32>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL -     match z as Arc<Option<i32>> {
LL +     match *(z as Arc<Option<i32>>) {
   |

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:38:9
   |
LL |     match z as Arc<Option<i32>> {
   |           --------------------- this expression has type `Arc<Option<i32>>`
...
LL |         None => {}
   |         ^^^^ expected `Arc<Option<i32>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<i32>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL -     match z as Arc<Option<i32>> {
LL +     match *(z as Arc<Option<i32>>) {
   |

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:46:9
   |
LL |     match z_const {
   |           ------- this expression has type `&Arc<Option<i32>>`
...
LL |         Some(_) => {}
   |         ^^^^^^^ expected `Arc<Option<i32>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<i32>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match &**z_const {
   |           +++

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:48:9
   |
LL |     match z_const {
   |           ------- this expression has type `&Arc<Option<i32>>`
...
LL |         None => {}
   |         ^^^^ expected `Arc<Option<i32>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<i32>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match &**z_const {
   |           +++

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:57:9
   |
LL |     match z_mut {
   |           ----- this expression has type `&mut Arc<Option<i32>>`
...
LL |         Some(_) => {}
   |         ^^^^^^^ expected `Arc<Option<i32>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<i32>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match &**z_mut {
   |           +++

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:59:9
   |
LL |     match z_mut {
   |           ----- this expression has type `&mut Arc<Option<i32>>`
...
LL |         None => {}
   |         ^^^^ expected `Arc<Option<i32>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<i32>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match &**z_mut {
   |           +++

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:68:9
   |
LL |     match y_mut {
   |           ----- this expression has type `&mut Box<Option<i32>>`
...
LL |         Some(_) => {}
   |         ^^^^^^^ expected `Box<Option<i32>>`, found `Option<_>`
   |
   = note: expected struct `Box<Option<i32>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match &**y_mut {
   |           +++

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:70:9
   |
LL |     match y_mut {
   |           ----- this expression has type `&mut Box<Option<i32>>`
...
LL |         None => {}
   |         ^^^^ expected `Box<Option<i32>>`, found `Option<_>`
   |
   = note: expected struct `Box<Option<i32>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL |     match &**y_mut {
   |           +++

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:79:9
   |
LL |     match (& (&difficult)  ) {
   |           ------------------ this expression has type `&&Arc<Option<{integer}>>`
...
LL |         Some(_) => {}
   |         ^^^^^^^ expected `Arc<Option<{integer}>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<{integer}>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL -     match (& (&difficult)  ) {
LL +     match &*difficult {
   |

error[E0308]: mismatched types
  --> $DIR/suggest-deref-in-match-issue-132784.rs:81:9
   |
LL |     match (& (&difficult)  ) {
   |           ------------------ this expression has type `&&Arc<Option<{integer}>>`
...
LL |         None => {}
   |         ^^^^ expected `Arc<Option<{integer}>>`, found `Option<_>`
   |
   = note: expected struct `Arc<Option<{integer}>>`
                found enum `Option<_>`
help: consider dereferencing to access the inner value using the Deref trait
   |
LL -     match (& (&difficult)  ) {
LL +     match &*difficult {
   |

error: aborting due to 16 previous errors

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