error[E0308]: mismatched types --> $DIR/arrays-and-slices.rs:18:9 | LL | const BSTR_SIZED: &'static [u8; 3] = b"012"; | ---------------------------------- constant defined here ... LL | match BSTR_UNSIZED { | ------------ this expression has type `&[u8]` LL | BSTR_SIZED => {} | ^^^^^^^^^^ | | | expected `&[u8]`, found `&[u8; 3]` | `BSTR_SIZED` is interpreted as a constant, not a new binding | help: introduce a new binding instead: `other_bstr_sized` | = note: expected reference `&[u8]` found reference `&'static [u8; 3]` error[E0308]: mismatched types --> $DIR/arrays-and-slices.rs:23:9 | LL | const STRUCT_SIZED: &'static SomeStruct<[u8; 3]> = &SomeStruct(*BSTR_SIZED); | ------------------------------------------------ constant defined here ... LL | match STRUCT_UNSIZED { | -------------- this expression has type `&SomeStruct<[u8]>` LL | STRUCT_SIZED => {} | ^^^^^^^^^^^^ | | | expected `&SomeStruct<[u8]>`, found `&SomeStruct<[u8; 3]>` | `STRUCT_SIZED` is interpreted as a constant, not a new binding | help: introduce a new binding instead: `other_struct_sized` | = note: expected reference `&SomeStruct<[u8]>` found reference `&'static SomeStruct<[u8; 3]>` error[E0308]: mismatched types --> $DIR/arrays-and-slices.rs:30:9 | LL | const BSTR_SIZED: &'static [u8; 3] = b"012"; | ---------------------------------- constant defined here ... LL | match BSTR_UNSIZED { | ------------ this expression has type `&[u8]` LL | BSTR_SIZED => {} | ^^^^^^^^^^ | | | expected `&[u8]`, found `&[u8; 3]` | `BSTR_SIZED` is interpreted as a constant, not a new binding | help: introduce a new binding instead: `other_bstr_sized` | = note: expected reference `&[u8]` found reference `&'static [u8; 3]` error[E0308]: mismatched types --> $DIR/arrays-and-slices.rs:37:9 | LL | const STRUCT_SIZED: &'static SomeStruct<[u8; 3]> = &SomeStruct(*BSTR_SIZED); | ------------------------------------------------ constant defined here ... LL | match STRUCT_UNSIZED { | -------------- this expression has type `&SomeStruct<[u8]>` LL | STRUCT_SIZED => {} | ^^^^^^^^^^^^ | | | expected `&SomeStruct<[u8]>`, found `&SomeStruct<[u8; 3]>` | `STRUCT_SIZED` is interpreted as a constant, not a new binding | help: introduce a new binding instead: `other_struct_sized` | = note: expected reference `&SomeStruct<[u8]>` found reference `&'static SomeStruct<[u8; 3]>` error: cannot use unsized non-slice type `SomeStruct<[u8]>` in constant patterns --> $DIR/arrays-and-slices.rs:47:9 | LL | const STRUCT_UNSIZED: &'static SomeStruct<[u8]> = STRUCT_SIZED; | ----------------------------------------------- constant defined here ... LL | STRUCT_UNSIZED => {} | ^^^^^^^^^^^^^^ error: aborting due to 5 previous errors For more information about this error, try `rustc --explain E0308`.