1
1
//@ check-pass
2
2
3
3
#![ feature( concat_bytes) ]
4
-
4
+ #! [ feature ( inherent_str_constructors ) ]
5
5
#![ warn( invalid_from_utf8_unchecked) ]
6
6
#![ warn( invalid_from_utf8) ]
7
7
8
8
pub fn from_utf8_unchecked_mut ( ) {
9
9
// Valid
10
10
unsafe {
11
11
std:: str:: from_utf8_unchecked_mut ( & mut [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
12
+ str:: from_utf8_unchecked_mut ( & mut [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
12
13
std:: str:: from_utf8_unchecked_mut ( & mut [ b'c' , b'l' , b'i' , b'p' , b'p' , b'y' ] ) ;
14
+ str:: from_utf8_unchecked_mut ( & mut [ b'c' , b'l' , b'i' , b'p' , b'p' , b'y' ] ) ;
13
15
14
16
let x = 0xA0 ;
15
17
std:: str:: from_utf8_unchecked_mut ( & mut [ 0xC0 , x] ) ;
@@ -19,101 +21,150 @@ pub fn from_utf8_unchecked_mut() {
19
21
unsafe {
20
22
std:: str:: from_utf8_unchecked_mut ( & mut [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
21
23
//~^ WARN calls to `std::str::from_utf8_unchecked_mut`
24
+ str:: from_utf8_unchecked_mut ( & mut [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
25
+ //~^ WARN calls to `str::from_utf8_unchecked_mut`
22
26
std:: str:: from_utf8_unchecked_mut ( & mut [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
23
27
//~^ WARN calls to `std::str::from_utf8_unchecked_mut`
28
+ str:: from_utf8_unchecked_mut ( & mut [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
29
+ //~^ WARN calls to `str::from_utf8_unchecked_mut`
24
30
}
25
31
}
26
32
27
33
pub fn from_utf8_unchecked ( ) {
28
34
// Valid
29
35
unsafe {
30
36
std:: str:: from_utf8_unchecked ( & [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
37
+ str:: from_utf8_unchecked ( & [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
31
38
std:: str:: from_utf8_unchecked ( & [ b'c' , b'l' , b'i' , b'p' , b'p' , b'y' ] ) ;
39
+ str:: from_utf8_unchecked ( & [ b'c' , b'l' , b'i' , b'p' , b'p' , b'y' ] ) ;
32
40
std:: str:: from_utf8_unchecked ( b"clippy" ) ;
41
+ str:: from_utf8_unchecked ( b"clippy" ) ;
33
42
34
43
let x = 0xA0 ;
35
44
std:: str:: from_utf8_unchecked ( & [ 0xC0 , x] ) ;
45
+ str:: from_utf8_unchecked ( & [ 0xC0 , x] ) ;
36
46
}
37
47
38
48
// Invalid
39
49
unsafe {
40
50
std:: str:: from_utf8_unchecked ( & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
41
51
//~^ WARN calls to `std::str::from_utf8_unchecked`
52
+ str:: from_utf8_unchecked ( & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
53
+ //~^ WARN calls to `str::from_utf8_unchecked`
42
54
std:: str:: from_utf8_unchecked ( & [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
43
55
//~^ WARN calls to `std::str::from_utf8_unchecked`
56
+ str:: from_utf8_unchecked ( & [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
57
+ //~^ WARN calls to `str::from_utf8_unchecked`
44
58
std:: str:: from_utf8_unchecked ( b"cl\x82 ippy" ) ;
45
59
//~^ WARN calls to `std::str::from_utf8_unchecked`
60
+ str:: from_utf8_unchecked ( b"cl\x82 ippy" ) ;
61
+ //~^ WARN calls to `str::from_utf8_unchecked`
46
62
std:: str:: from_utf8_unchecked ( concat_bytes ! ( b"cl" , b"\x82 ippy" ) ) ;
47
63
//~^ WARN calls to `std::str::from_utf8_unchecked`
64
+ str:: from_utf8_unchecked ( concat_bytes ! ( b"cl" , b"\x82 ippy" ) ) ;
65
+ //~^ WARN calls to `str::from_utf8_unchecked`
48
66
}
49
67
}
50
68
51
69
pub fn from_utf8_mut ( ) {
52
70
// Valid
53
71
{
54
72
std:: str:: from_utf8_mut ( & mut [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
73
+ str:: from_utf8_mut ( & mut [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
55
74
std:: str:: from_utf8_mut ( & mut [ b'c' , b'l' , b'i' , b'p' , b'p' , b'y' ] ) ;
75
+ str:: from_utf8_mut ( & mut [ b'c' , b'l' , b'i' , b'p' , b'p' , b'y' ] ) ;
56
76
57
77
let x = 0xa0 ;
58
78
std:: str:: from_utf8_mut ( & mut [ 0xc0 , x] ) ;
79
+ str:: from_utf8_mut ( & mut [ 0xc0 , x] ) ;
59
80
}
60
81
61
82
// Invalid
62
83
{
63
84
std:: str:: from_utf8_mut ( & mut [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
64
85
//~^ WARN calls to `std::str::from_utf8_mut`
86
+ str:: from_utf8_mut ( & mut [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
87
+ //~^ WARN calls to `str::from_utf8_mut`
65
88
std:: str:: from_utf8_mut ( & mut [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
66
89
//~^ WARN calls to `std::str::from_utf8_mut`
90
+ str:: from_utf8_mut ( & mut [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
91
+ //~^ WARN calls to `str::from_utf8_mut`
67
92
}
68
93
}
69
94
70
95
pub fn from_utf8 ( ) {
71
96
// Valid
72
97
{
73
98
std:: str:: from_utf8 ( & [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
99
+ str:: from_utf8 ( & [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
74
100
std:: str:: from_utf8 ( & [ b'c' , b'l' , b'i' , b'p' , b'p' , b'y' ] ) ;
101
+ str:: from_utf8 ( & [ b'c' , b'l' , b'i' , b'p' , b'p' , b'y' ] ) ;
75
102
std:: str:: from_utf8 ( b"clippy" ) ;
103
+ str:: from_utf8 ( b"clippy" ) ;
76
104
77
105
let x = 0xA0 ;
78
106
std:: str:: from_utf8 ( & [ 0xC0 , x] ) ;
107
+ str:: from_utf8 ( & [ 0xC0 , x] ) ;
79
108
}
80
109
81
110
// Invalid
82
111
{
83
112
std:: str:: from_utf8 ( & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
84
113
//~^ WARN calls to `std::str::from_utf8`
114
+ str:: from_utf8 ( & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
115
+ //~^ WARN calls to `str::from_utf8`
85
116
std:: str:: from_utf8 ( & [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
86
117
//~^ WARN calls to `std::str::from_utf8`
118
+ str:: from_utf8 ( & [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
119
+ //~^ WARN calls to `str::from_utf8`
87
120
std:: str:: from_utf8 ( b"cl\x82 ippy" ) ;
88
121
//~^ WARN calls to `std::str::from_utf8`
122
+ str:: from_utf8 ( b"cl\x82 ippy" ) ;
123
+ //~^ WARN calls to `str::from_utf8`
89
124
std:: str:: from_utf8 ( concat_bytes ! ( b"cl" , b"\x82 ippy" ) ) ;
90
125
//~^ WARN calls to `std::str::from_utf8`
126
+ str:: from_utf8 ( concat_bytes ! ( b"cl" , b"\x82 ippy" ) ) ;
127
+ //~^ WARN calls to `str::from_utf8`
91
128
}
92
129
}
93
130
94
131
pub fn from_utf8_with_indirections ( ) {
95
132
let mut a = [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ;
96
133
std:: str:: from_utf8_mut ( & mut a) ;
97
134
//~^ WARN calls to `std::str::from_utf8_mut`
135
+ str:: from_utf8_mut ( & mut a) ;
136
+ //~^ WARN calls to `str::from_utf8_mut`
98
137
let mut b = & mut a;
99
138
let mut c = b;
100
139
std:: str:: from_utf8_mut ( c) ;
101
140
//~^ WARN calls to `std::str::from_utf8_mut`
141
+ str:: from_utf8_mut ( c) ;
142
+ //~^ WARN calls to `str::from_utf8_mut`
102
143
let mut c = & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ;
103
144
std:: str:: from_utf8 ( c) ;
104
145
//~^ WARN calls to `std::str::from_utf8`
146
+ str:: from_utf8 ( c) ;
147
+ //~^ WARN calls to `str::from_utf8`
105
148
const INVALID_1 : [ u8 ; 7 ] = [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ;
106
149
std:: str:: from_utf8 ( & INVALID_1 ) ;
107
150
//~^ WARN calls to `std::str::from_utf8`
151
+ str:: from_utf8 ( & INVALID_1 ) ;
152
+ //~^ WARN calls to `str::from_utf8`
108
153
static INVALID_2 : [ u8 ; 7 ] = [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ;
109
154
std:: str:: from_utf8 ( & INVALID_2 ) ;
110
155
//~^ WARN calls to `std::str::from_utf8`
156
+ str:: from_utf8 ( & INVALID_2 ) ;
157
+ //~^ WARN calls to `str::from_utf8`
111
158
const INVALID_3 : & ' static [ u8 ; 7 ] = & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ;
112
159
std:: str:: from_utf8 ( INVALID_3 ) ;
113
160
//~^ WARN calls to `std::str::from_utf8`
161
+ str:: from_utf8 ( INVALID_3 ) ;
162
+ //~^ WARN calls to `str::from_utf8`
114
163
const INVALID_4 : & ' static [ u8 ; 7 ] = { & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] } ;
115
164
std:: str:: from_utf8 ( INVALID_4 ) ;
116
165
//~^ WARN calls to `std::str::from_utf8`
166
+ str:: from_utf8 ( INVALID_4 ) ;
167
+ //~^ WARN calls to `str::from_utf8`
117
168
}
118
169
119
170
fn main ( ) { }
0 commit comments