Skip to content

Commit 80a092c

Browse files
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
1 parent bc97f7d commit 80a092c

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

tests/ui/needless_pass_by_ref_mut.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,18 @@ async fn _f(v: &mut Vec<()>) {
276276
_ = || || x;
277277
}
278278

279+
struct Data<T: ?Sized> {
280+
value: T,
281+
}
282+
// Unsafe functions should not warn.
283+
unsafe fn get_mut_unchecked<T>(ptr: &mut NonNull<Data<T>>) -> &mut T {
284+
&mut (*ptr.as_ptr()).value
285+
}
286+
// Unsafe blocks should not warn.
287+
fn get_mut_unchecked2<T>(ptr: &mut NonNull<Data<T>>) -> &mut T {
288+
unsafe { &mut (*ptr.as_ptr()).value }
289+
}
290+
279291
fn main() {
280292
let mut u = 0;
281293
let mut v = vec![0];

0 commit comments

Comments
 (0)