4
4
//@no-rustfix
5
5
use std:: sync:: atomic:: Ordering ; // #[non_exhaustive] enum
6
6
7
+ fn repeat ( ) -> ! {
8
+ panic ! ( )
9
+ }
10
+
7
11
pub fn f ( x : Ordering ) {
8
12
match x {
9
13
Ordering :: Relaxed => println ! ( "relaxed" ) ,
10
14
Ordering :: Release => println ! ( "release" ) ,
11
15
Ordering :: Acquire => println ! ( "acquire" ) ,
12
- Ordering :: AcqRel | Ordering :: SeqCst => panic ! ( ) ,
16
+ Ordering :: AcqRel | Ordering :: SeqCst => repeat ( ) ,
13
17
#[ deny( non_exhaustive_omitted_patterns) ]
14
- _ => panic ! ( ) ,
18
+ _ => repeat ( ) ,
15
19
}
16
20
}
17
21
@@ -25,8 +29,8 @@ mod f {
25
29
Ordering :: Relaxed => println ! ( "relaxed" ) ,
26
30
Ordering :: Release => println ! ( "release" ) ,
27
31
Ordering :: Acquire => println ! ( "acquire" ) ,
28
- Ordering :: AcqRel | Ordering :: SeqCst => panic ! ( ) ,
29
- _ => panic ! ( ) ,
32
+ Ordering :: AcqRel | Ordering :: SeqCst => repeat ( ) ,
33
+ _ => repeat ( ) ,
30
34
}
31
35
}
32
36
}
@@ -38,9 +42,9 @@ pub fn g(x: Ordering) {
38
42
Ordering :: Relaxed => println ! ( "relaxed" ) ,
39
43
Ordering :: Release => println ! ( "release" ) ,
40
44
Ordering :: Acquire => println ! ( "acquire" ) ,
41
- Ordering :: AcqRel | Ordering :: SeqCst => panic ! ( ) ,
45
+ Ordering :: AcqRel | Ordering :: SeqCst => repeat ( ) ,
42
46
//~^ ERROR: this match arm has an identical body to the `_` wildcard arm
43
- _ => panic ! ( ) ,
47
+ _ => repeat ( ) ,
44
48
}
45
49
}
46
50
@@ -52,9 +56,9 @@ mod g {
52
56
Ordering :: Relaxed => println ! ( "relaxed" ) ,
53
57
Ordering :: Release => println ! ( "release" ) ,
54
58
Ordering :: Acquire => println ! ( "acquire" ) ,
55
- Ordering :: AcqRel | Ordering :: SeqCst => panic ! ( ) ,
59
+ Ordering :: AcqRel | Ordering :: SeqCst => repeat ( ) ,
56
60
//~^ ERROR: this match arm has an identical body to the `_` wildcard arm
57
- _ => panic ! ( ) ,
61
+ _ => repeat ( ) ,
58
62
}
59
63
}
60
64
}
0 commit comments