44//@no-rustfix
55use std:: sync:: atomic:: Ordering ; // #[non_exhaustive] enum
66
7+ fn repeat ( ) -> ! {
8+ panic ! ( )
9+ }
10+
711pub fn f ( x : Ordering ) {
812 match x {
913 Ordering :: Relaxed => println ! ( "relaxed" ) ,
1014 Ordering :: Release => println ! ( "release" ) ,
1115 Ordering :: Acquire => println ! ( "acquire" ) ,
12- Ordering :: AcqRel | Ordering :: SeqCst => panic ! ( ) ,
16+ Ordering :: AcqRel | Ordering :: SeqCst => repeat ( ) ,
1317 #[ deny( non_exhaustive_omitted_patterns) ]
14- _ => panic ! ( ) ,
18+ _ => repeat ( ) ,
1519 }
1620}
1721
@@ -25,8 +29,8 @@ mod f {
2529 Ordering :: Relaxed => println ! ( "relaxed" ) ,
2630 Ordering :: Release => println ! ( "release" ) ,
2731 Ordering :: Acquire => println ! ( "acquire" ) ,
28- Ordering :: AcqRel | Ordering :: SeqCst => panic ! ( ) ,
29- _ => panic ! ( ) ,
32+ Ordering :: AcqRel | Ordering :: SeqCst => repeat ( ) ,
33+ _ => repeat ( ) ,
3034 }
3135 }
3236}
@@ -38,9 +42,9 @@ pub fn g(x: Ordering) {
3842 Ordering :: Relaxed => println ! ( "relaxed" ) ,
3943 Ordering :: Release => println ! ( "release" ) ,
4044 Ordering :: Acquire => println ! ( "acquire" ) ,
41- Ordering :: AcqRel | Ordering :: SeqCst => panic ! ( ) ,
45+ Ordering :: AcqRel | Ordering :: SeqCst => repeat ( ) ,
4246 //~^ ERROR: this match arm has an identical body to the `_` wildcard arm
43- _ => panic ! ( ) ,
47+ _ => repeat ( ) ,
4448 }
4549}
4650
@@ -52,9 +56,9 @@ mod g {
5256 Ordering :: Relaxed => println ! ( "relaxed" ) ,
5357 Ordering :: Release => println ! ( "release" ) ,
5458 Ordering :: Acquire => println ! ( "acquire" ) ,
55- Ordering :: AcqRel | Ordering :: SeqCst => panic ! ( ) ,
59+ Ordering :: AcqRel | Ordering :: SeqCst => repeat ( ) ,
5660 //~^ ERROR: this match arm has an identical body to the `_` wildcard arm
57- _ => panic ! ( ) ,
61+ _ => repeat ( ) ,
5862 }
5963 }
6064}
0 commit comments