error[E0004]: non-exhaustive patterns: type `UninhabitedStruct` is non-empty --> $DIR/match_same_crate.rs:30:11 | LL | match x {} | ^ | note: `UninhabitedStruct` defined here --> $DIR/match_same_crate.rs:8:12 | LL | pub struct UninhabitedStruct { | ^^^^^^^^^^^^^^^^^ = note: the matched value is of type `UninhabitedStruct` help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown | LL ~ match x { LL + _ => todo!(), LL ~ } | error[E0004]: non-exhaustive patterns: type `UninhabitedTupleStruct` is non-empty --> $DIR/match_same_crate.rs:34:11 | LL | match x {} | ^ | note: `UninhabitedTupleStruct` defined here --> $DIR/match_same_crate.rs:13:12 | LL | pub struct UninhabitedTupleStruct(!); | ^^^^^^^^^^^^^^^^^^^^^^ = note: the matched value is of type `UninhabitedTupleStruct` help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown | LL ~ match x { LL + _ => todo!(), LL ~ } | error[E0004]: non-exhaustive patterns: `Tuple(_)` and `Struct { .. }` not covered --> $DIR/match_same_crate.rs:38:11 | LL | match x {} | ^ patterns `Tuple(_)` and `Struct { .. }` not covered | note: `UninhabitedVariants` defined here --> $DIR/match_same_crate.rs:16:23 | LL | pub enum UninhabitedVariants { | ------------------- LL | #[non_exhaustive] Tuple(!), | ^^^^^ not covered LL | #[non_exhaustive] Struct { x: ! } | ^^^^^^ not covered = note: the matched value is of type `UninhabitedVariants` help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms | LL ~ match x { LL + Tuple(_) | Struct { .. } => todo!(), LL ~ } | error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0004`.