1
1
#![ warn( clippy:: ref_as_ptr) ]
2
2
#![ allow( clippy:: unnecessary_mut_passed) ]
3
3
4
+ fn f < T > ( _: T ) { }
5
+
4
6
fn main ( ) {
5
- let _ = std::ptr::from_ref(&1u8);
6
- let _ = std::ptr::from_ref::<u32>(&2u32);
7
- let _ = std::ptr::from_ref::<f64>(&3.0f64);
7
+ f ( std:: ptr:: from_ref ( & 1u8 ) ) ;
8
+ f ( std:: ptr:: from_ref :: < u32 > ( & 2u32 ) ) ;
9
+ f ( std:: ptr:: from_ref :: < f64 > ( & 3.0f64 ) ) ;
8
10
9
- let _ = std::ptr::from_ref(&4) as *const f32;
10
- let _ = std::ptr::from_ref::<f32>(&5.0f32) as *const u32;
11
+ f ( std:: ptr:: from_ref ( & 4 ) as * const f32 ) ;
12
+ f ( std:: ptr:: from_ref :: < f32 > ( & 5.0f32 ) as * const u32 ) ;
11
13
12
- let _ = std::ptr::from_ref(&mut 6u8);
13
- let _ = std::ptr::from_ref::<u32>(&mut 7u32);
14
- let _ = std::ptr::from_ref::<f64>(&mut 8.0f64);
14
+ f ( std:: ptr:: from_ref ( & mut 6u8 ) ) ;
15
+ f ( std:: ptr:: from_ref :: < u32 > ( & mut 7u32 ) ) ;
16
+ f ( std:: ptr:: from_ref :: < f64 > ( & mut 8.0f64 ) ) ;
15
17
16
- let _ = std::ptr::from_ref(&mut 9) as *const f32;
17
- let _ = std::ptr::from_ref::<f32>(&mut 10.0f32) as *const u32;
18
+ f ( std:: ptr:: from_ref ( & mut 9 ) as * const f32 ) ;
19
+ f ( std:: ptr:: from_ref :: < f32 > ( & mut 10.0f32 ) as * const u32 ) ;
18
20
19
- let _ = std::ptr::from_mut(&mut 11u8);
20
- let _ = std::ptr::from_mut::<u32>(&mut 12u32);
21
- let _ = std::ptr::from_mut::<f64>(&mut 13.0f64);
21
+ f ( std:: ptr:: from_mut ( & mut 11u8 ) ) ;
22
+ f ( std:: ptr:: from_mut :: < u32 > ( & mut 12u32 ) ) ;
23
+ f ( std:: ptr:: from_mut :: < f64 > ( & mut 13.0f64 ) ) ;
22
24
23
- let _ = std::ptr::from_mut(&mut 14) as *const f32;
24
- let _ = std::ptr::from_mut::<f32>(&mut 15.0f32) as *const u32;
25
+ f ( std:: ptr:: from_mut ( & mut 14 ) as * const f32 ) ;
26
+ f ( std:: ptr:: from_mut :: < f32 > ( & mut 15.0f32 ) as * const u32 ) ;
25
27
26
- let _ = std::ptr::from_ref(&1u8);
27
- let _ = std::ptr::from_ref::<u32>(&2u32);
28
- let _ = std::ptr::from_ref::<f64>(&3.0f64);
28
+ f ( std:: ptr:: from_ref ( & 1u8 ) ) ;
29
+ f ( std:: ptr:: from_ref :: < u32 > ( & 2u32 ) ) ;
30
+ f ( std:: ptr:: from_ref :: < f64 > ( & 3.0f64 ) ) ;
29
31
30
- let _ = std::ptr::from_ref(&4) as *const f32;
31
- let _ = std::ptr::from_ref::<f32>(&5.0f32) as *const u32;
32
+ f ( std:: ptr:: from_ref ( & 4 ) as * const f32 ) ;
33
+ f ( std:: ptr:: from_ref :: < f32 > ( & 5.0f32 ) as * const u32 ) ;
32
34
33
35
let val = 1 ;
34
- let _ = std::ptr::from_ref(&val);
35
- let _ = std::ptr::from_ref::<i32>(&val);
36
+ f ( std:: ptr:: from_ref ( & val) ) ;
37
+ f ( std:: ptr:: from_ref :: < i32 > ( & val) ) ;
36
38
37
- let _ = std::ptr::from_ref(&val) as *const f32;
38
- let _ = std::ptr::from_ref::<i32>(&val) as *const f64;
39
+ f ( std:: ptr:: from_ref ( & val) as * const f32 ) ;
40
+ f ( std:: ptr:: from_ref :: < i32 > ( & val) as * const f64 ) ;
39
41
40
42
let mut val: u8 = 2 ;
41
- let _ = std::ptr::from_mut::<u8>(&mut val);
42
- let _ = std::ptr::from_mut(&mut val);
43
+ f ( std:: ptr:: from_mut :: < u8 > ( & mut val) ) ;
44
+ f ( std:: ptr:: from_mut ( & mut val) ) ;
45
+
46
+ f ( std:: ptr:: from_ref :: < u8 > ( & mut val) ) ;
47
+ f ( std:: ptr:: from_ref ( & mut val) ) ;
43
48
44
- let _ = std::ptr::from_ref::<u8>(&mut val);
45
- let _ = std::ptr::from_ref(&mut val);
49
+ f ( std:: ptr:: from_ref :: < u8 > ( & mut val) as * const f64 ) ;
50
+ f :: < * const Option < u8 > > ( std:: ptr:: from_ref ( & mut val) as * const _ ) ;
46
51
47
- let _ = std::ptr::from_ref::<u8>(&mut val) as *const f64;
48
- let _: *const Option<u8> = std::ptr::from_ref(&mut val) as *const _;
52
+ f ( std:: ptr:: from_ref :: < [ usize ; 7 ] > ( & std:: array:: from_fn ( |i| i * i) ) ) ;
53
+ f ( std:: ptr:: from_ref :: < [ usize ; 8 ] > ( & mut std:: array:: from_fn ( |i| i * i) ) ) ;
54
+ f ( std:: ptr:: from_mut :: < [ usize ; 9 ] > ( & mut std:: array:: from_fn ( |i| i * i) ) ) ;
49
55
50
- let _ = std::ptr::from_ref::<[usize; 7]>(&std::array::from_fn(|i| i * i)) ;
51
- let _ = std::ptr::from_ref::<[usize; 8]>( &mut std::array::from_fn(|i| i * i)) ;
52
- let _ = std::ptr::from_mut::<[usize; 9]>(&mut std::array::from_fn(|i| i * i)) ;
56
+ let _ = & String :: new ( ) as * const _ ;
57
+ let _ = & mut String :: new ( ) as * mut _ ;
58
+ const FOO : * const String = & String :: new ( ) as * const _ ;
53
59
}
54
60
55
61
#[ clippy:: msrv = "1.75" ]
@@ -58,27 +64,27 @@ fn _msrv_1_75() {
58
64
let mut_val = & mut 42_i32 ;
59
65
60
66
// `std::ptr::from_{ref, mut}` was stabilized in 1.76. Do not lint this
61
- let _ = val as *const i32;
62
- let _ = mut_val as *mut i32;
67
+ f ( val as * const i32 ) ;
68
+ f ( mut_val as * mut i32 ) ;
63
69
}
64
70
65
71
#[ clippy:: msrv = "1.76" ]
66
72
fn _msrv_1_76 ( ) {
67
73
let val = & 42_i32 ;
68
74
let mut_val = & mut 42_i32 ;
69
75
70
- let _ = std::ptr::from_ref::<i32>(val);
71
- let _ = std::ptr::from_mut::<i32>(mut_val);
76
+ f ( std:: ptr:: from_ref :: < i32 > ( val) ) ;
77
+ f ( std:: ptr:: from_mut :: < i32 > ( mut_val) ) ;
72
78
}
73
79
74
80
fn foo ( val : & [ u8 ] ) {
75
- let _ = std::ptr::from_ref(val);
76
- let _ = std::ptr::from_ref::<[u8]>(val);
81
+ f ( std:: ptr:: from_ref ( val) ) ;
82
+ f ( std:: ptr:: from_ref :: < [ u8 ] > ( val) ) ;
77
83
}
78
84
79
85
fn bar ( val : & mut str ) {
80
- let _ = std::ptr::from_mut(val);
81
- let _ = std::ptr::from_mut::<str>(val);
86
+ f ( std:: ptr:: from_mut ( val) ) ;
87
+ f ( std:: ptr:: from_mut :: < str > ( val) ) ;
82
88
}
83
89
84
90
struct X < ' a > ( & ' a i32 ) ;
0 commit comments