2 #![feature(exhaustive_patterns, never_type)]
3 #![allow(dead_code, unreachable_code, unused_variables)]
4 #![allow(clippy::let_and_return)]
6 enum SingleVariantEnum {
10 struct TupleStruct(i32);
14 fn infallible_destructuring_match_enum() {
15 let wrapper = SingleVariantEnum::Variant(0);
18 let data = match wrapper {
19 SingleVariantEnum::Variant(i) => i,
23 let data = match wrapper {
24 SingleVariantEnum::Variant(_) => -1,
27 // Neither should this!
28 let data = match wrapper {
29 SingleVariantEnum::Variant(i) => -1,
32 let SingleVariantEnum::Variant(data) = wrapper;
35 fn infallible_destructuring_match_struct() {
36 let wrapper = TupleStruct(0);
39 let data = match wrapper {
44 let data = match wrapper {
48 // Neither should this!
49 let data = match wrapper {
53 let TupleStruct(data) = wrapper;
57 let wrapper: Result<i32, !> = Ok(23);
60 let data = match wrapper {
65 let data = match wrapper {
69 // Neither should this!
70 let data = match wrapper {
74 let Ok(data) = wrapper;
78 fn match_on(&self) -> ! {
79 // The lint shouldn't pick this up, as `let` won't work here!
80 let data = match *self {};