error[E0004]: non-exhaustive patterns: `Err(_)` not covered --> $DIR/uninhabited-matches-feature-gated.rs:6:19 | LL | let _ = match x { | ^ pattern `Err(_)` not covered | note: `Result` defined here --> $SRC_DIR/core/src/result.rs:LL:COL | LL | pub enum Result { | --------------------- ... LL | Err(#[stable(feature = "rust1", since = "1.0.0")] E), | ^^^ not covered = note: the matched value is of type `Result` help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown | LL ~ Ok(n) => n, LL ~ Err(_) => todo!(), | error[E0004]: non-exhaustive patterns: type `&Void` is non-empty --> $DIR/uninhabited-matches-feature-gated.rs:15:19 | LL | let _ = match x {}; | ^ | note: `Void` defined here --> $DIR/uninhabited-matches-feature-gated.rs:2:6 | LL | enum Void {} | ^^^^ = note: the matched value is of type `&Void` = note: references are always considered inhabited help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown | LL ~ let _ = match x { LL + _ => todo!(), LL ~ }; | error[E0004]: non-exhaustive patterns: type `(Void,)` is non-empty --> $DIR/uninhabited-matches-feature-gated.rs:18:19 | LL | let _ = match x {}; | ^ | = note: the matched value is of type `(Void,)` help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown | LL ~ let _ = match x { LL + _ => todo!(), LL ~ }; | error[E0004]: non-exhaustive patterns: type `[Void; 1]` is non-empty --> $DIR/uninhabited-matches-feature-gated.rs:21:19 | LL | let _ = match x {}; | ^ | = note: the matched value is of type `[Void; 1]` help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown | LL ~ let _ = match x { LL + _ => todo!(), LL ~ }; | error[E0004]: non-exhaustive patterns: `&[_, ..]` not covered --> $DIR/uninhabited-matches-feature-gated.rs:24:19 | LL | let _ = match x { | ^ pattern `&[_, ..]` not covered | = note: the matched value is of type `&[Void]` help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown | LL ~ &[] => (), LL ~ &[_, ..] => todo!(), | error[E0004]: non-exhaustive patterns: `Err(_)` not covered --> $DIR/uninhabited-matches-feature-gated.rs:32:19 | LL | let _ = match x { | ^ pattern `Err(_)` not covered | note: `Result` defined here --> $SRC_DIR/core/src/result.rs:LL:COL | LL | pub enum Result { | --------------------- ... LL | Err(#[stable(feature = "rust1", since = "1.0.0")] E), | ^^^ not covered = note: the matched value is of type `Result` help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown | LL ~ Ok(x) => x, LL ~ Err(_) => todo!(), | error[E0005]: refutable pattern in local binding: `Err(_)` not covered --> $DIR/uninhabited-matches-feature-gated.rs:37:9 | LL | let Ok(x) = x; | ^^^^^ pattern `Err(_)` not covered | = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant = note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html note: `Result` defined here --> $SRC_DIR/core/src/result.rs:LL:COL | LL | pub enum Result { | --------------------- ... LL | Err(#[stable(feature = "rust1", since = "1.0.0")] E), | ^^^ not covered = note: the matched value is of type `Result` help: you might want to use `if let` to ignore the variant that isn't matched | LL | let x = if let Ok(x) = x { x } else { todo!() }; | ++++++++++ ++++++++++++++++++++++ help: alternatively, you might want to use let else to handle the variant that isn't matched | LL | let Ok(x) = x else { todo!() }; | ++++++++++++++++ error: aborting due to 7 previous errors Some errors have detailed explanations: E0004, E0005. For more information about an error, try `rustc --explain E0004`.