error[E0308]: mismatched types --> $DIR/let-else-ref-bindings.rs:16:38 | LL | let Some(ref a): Option<&[u8]> = some else { return }; | ^^^^ expected `Option<&[u8]>`, found `Option>` | = note: expected enum `Option<&[u8]>` found enum `Option>` help: try using `.as_deref()` to convert `Option>` to `Option<&[u8]>` | LL | let Some(ref a): Option<&[u8]> = some.as_deref() else { return }; | +++++++++++ error[E0308]: mismatched types --> $DIR/let-else-ref-bindings.rs:20:38 | LL | let Some(ref a): Option<&[u8]> = &some else { return }; | ^^^^^ expected `Option<&[u8]>`, found `&Option>` | = note: expected enum `Option<&[u8]>` found reference `&Option>` help: try using `.as_deref()` to convert `&Option>` to `Option<&[u8]>` | LL - let Some(ref a): Option<&[u8]> = &some else { return }; LL + let Some(ref a): Option<&[u8]> = some.as_deref() else { return }; | error[E0308]: mismatched types --> $DIR/let-else-ref-bindings.rs:24:34 | LL | let Some(a): Option<&[u8]> = some else { return }; | ------------- ^^^^ expected `Option<&[u8]>`, found `Option>` | | | expected due to this | = note: expected enum `Option<&[u8]>` found enum `Option>` help: try using `.as_deref()` to convert `Option>` to `Option<&[u8]>` | LL | let Some(a): Option<&[u8]> = some.as_deref() else { return }; | +++++++++++ error[E0308]: mismatched types --> $DIR/let-else-ref-bindings.rs:27:34 | LL | let Some(a): Option<&[u8]> = &some else { return }; | ------------- ^^^^^ expected `Option<&[u8]>`, found `&Option>` | | | expected due to this | = note: expected enum `Option<&[u8]>` found reference `&Option>` help: try using `.as_deref()` to convert `&Option>` to `Option<&[u8]>` | LL - let Some(a): Option<&[u8]> = &some else { return }; LL + let Some(a): Option<&[u8]> = some.as_deref() else { return }; | error[E0308]: mismatched types --> $DIR/let-else-ref-bindings.rs:44:46 | LL | let Some(ref mut a): Option<&mut [u8]> = some else { return }; | ^^^^ expected `Option<&mut [u8]>`, found `Option>` | = note: expected enum `Option<&mut [u8]>` found enum `Option>` error[E0308]: mismatched types --> $DIR/let-else-ref-bindings.rs:48:46 | LL | let Some(ref mut a): Option<&mut [u8]> = &mut some else { return }; | ^^^^^^^^^ expected `Option<&mut [u8]>`, found `&mut Option>` | = note: expected enum `Option<&mut [u8]>` found mutable reference `&mut Option>` error[E0308]: mismatched types --> $DIR/let-else-ref-bindings.rs:52:38 | LL | let Some(a): Option<&mut [u8]> = some else { return }; | ----------------- ^^^^ expected `Option<&mut [u8]>`, found `Option>` | | | expected due to this | = note: expected enum `Option<&mut [u8]>` found enum `Option>` error[E0308]: mismatched types --> $DIR/let-else-ref-bindings.rs:55:38 | LL | let Some(a): Option<&mut [u8]> = &mut some else { return }; | ----------------- ^^^^^^^^^ expected `Option<&mut [u8]>`, found `&mut Option>` | | | expected due to this | = note: expected enum `Option<&mut [u8]>` found mutable reference `&mut Option>` error: aborting due to 8 previous errors For more information about this error, try `rustc --explain E0308`.