File tree Expand file tree Collapse file tree 1 file changed +8
-5
lines changed
tests/ui/rfcs/rfc-0000-never_patterns Expand file tree Collapse file tree 1 file changed +8
-5
lines changed Original file line number Diff line number Diff line change @@ -9,21 +9,24 @@ enum Void {}
99
1010// A never pattern alone diverges.
1111
12- fn never_arg ( !: Void ) -> u32 { }
12+ fn never_arg ( !: Void ) -> ! { }
1313
14- fn ref_never_arg ( & !: & Void ) -> u32 { }
14+ fn never_arg_returns_anything < T > ( !: Void ) -> T { }
1515
16- fn never_let ( ) -> u32 {
16+ fn ref_never_arg ( & !: & Void ) -> ! { }
17+
18+ fn never_let ( ) -> ! {
1719 let ptr: * const Void = std:: ptr:: null ( ) ;
1820 unsafe {
1921 let ! = * ptr;
2022 }
2123}
2224
23- fn never_match ( ) -> u32 {
25+ fn never_match ( ) -> ! {
2426 let ptr: * const Void = std:: ptr:: null ( ) ;
2527 unsafe {
2628 match * ptr { ! } ;
2729 }
28- println ! ( ) ; // Ensures this typechecks because of divergence.
30+ // Ensures this typechecks because of divergence and not the type of the match expression.
31+ println ! ( ) ;
2932}
You can’t perform that action at this time.
0 commit comments