diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2023-10-06 12:01:23 +0200 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2023-10-17 15:36:38 +0200 |
| commit | 80a092c6dfa046780c930cf709680d5fb7121df0 (patch) | |
| tree | 8a897693623b2a3ed9ea91171c5205d3734f5a7c | |
| parent | bc97f7d0c91649a7cdedbabde0edc9e33854f6a9 (diff) | |
| download | rust-80a092c6dfa046780c930cf709680d5fb7121df0.tar.gz rust-80a092c6dfa046780c930cf709680d5fb7121df0.zip | |
Add test for `needless_pass_by_ref_mut` to ensure that the lint is not emitted if variable is used in an unsafe block or function
| -rw-r--r-- | tests/ui/needless_pass_by_ref_mut.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/tests/ui/needless_pass_by_ref_mut.rs b/tests/ui/needless_pass_by_ref_mut.rs index 93f94b384af..7f642e53dfb 100644 --- a/tests/ui/needless_pass_by_ref_mut.rs +++ b/tests/ui/needless_pass_by_ref_mut.rs @@ -276,6 +276,18 @@ async fn _f(v: &mut Vec<()>) { _ = || || x; } +struct Data<T: ?Sized> { + value: T, +} +// Unsafe functions should not warn. +unsafe fn get_mut_unchecked<T>(ptr: &mut NonNull<Data<T>>) -> &mut T { + &mut (*ptr.as_ptr()).value +} +// Unsafe blocks should not warn. +fn get_mut_unchecked2<T>(ptr: &mut NonNull<Data<T>>) -> &mut T { + unsafe { &mut (*ptr.as_ptr()).value } +} + fn main() { let mut u = 0; let mut v = vec![0]; |
