diff options
| author | Nadrieril <nadrieril+git@gmail.com> | 2024-01-22 16:14:17 +0100 |
|---|---|---|
| committer | Nadrieril <nadrieril+git@gmail.com> | 2024-01-22 16:15:44 +0100 |
| commit | c5a4e074f052d0528451035df58c0f612ee45118 (patch) | |
| tree | b4d03406697fe0e5d917967b99dcfea1d33f56e8 | |
| parent | d1f1075931983be0a2ae91905fe8a6da50149d3d (diff) | |
| download | rust-c5a4e074f052d0528451035df58c0f612ee45118.tar.gz rust-c5a4e074f052d0528451035df58c0f612ee45118.zip | |
Use `-> !` to test divergence
| -rw-r--r-- | tests/ui/rfcs/rfc-0000-never_patterns/diverges.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/tests/ui/rfcs/rfc-0000-never_patterns/diverges.rs b/tests/ui/rfcs/rfc-0000-never_patterns/diverges.rs index 6f4b81b9b25..57151e246ff 100644 --- a/tests/ui/rfcs/rfc-0000-never_patterns/diverges.rs +++ b/tests/ui/rfcs/rfc-0000-never_patterns/diverges.rs @@ -9,21 +9,24 @@ enum Void {} // A never pattern alone diverges. -fn never_arg(!: Void) -> u32 {} +fn never_arg(!: Void) -> ! {} -fn ref_never_arg(&!: &Void) -> u32 {} +fn never_arg_returns_anything<T>(!: Void) -> T {} -fn never_let() -> u32 { +fn ref_never_arg(&!: &Void) -> ! {} + +fn never_let() -> ! { let ptr: *const Void = std::ptr::null(); unsafe { let ! = *ptr; } } -fn never_match() -> u32 { +fn never_match() -> ! { let ptr: *const Void = std::ptr::null(); unsafe { match *ptr { ! }; } - println!(); // Ensures this typechecks because of divergence. + // Ensures this typechecks because of divergence and not the type of the match expression. + println!(); } |
