11//@ check-pass
22
33#![ feature( concat_bytes) ]
4-
4+ #! [ feature ( inherent_str_constructors ) ]
55#![ warn( invalid_from_utf8_unchecked) ]
66#![ warn( invalid_from_utf8) ]
77
88pub fn from_utf8_unchecked_mut ( ) {
99 // Valid
1010 unsafe {
1111 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 ] ) ;
1213 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' ] ) ;
1315
1416 let x = 0xA0 ;
1517 std:: str:: from_utf8_unchecked_mut ( & mut [ 0xC0 , x] ) ;
@@ -19,101 +21,150 @@ pub fn from_utf8_unchecked_mut() {
1921 unsafe {
2022 std:: str:: from_utf8_unchecked_mut ( & mut [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
2123 //~^ 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`
2226 std:: str:: from_utf8_unchecked_mut ( & mut [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
2327 //~^ 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`
2430 }
2531}
2632
2733pub fn from_utf8_unchecked ( ) {
2834 // Valid
2935 unsafe {
3036 std:: str:: from_utf8_unchecked ( & [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
37+ str:: from_utf8_unchecked ( & [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
3138 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' ] ) ;
3240 std:: str:: from_utf8_unchecked ( b"clippy" ) ;
41+ str:: from_utf8_unchecked ( b"clippy" ) ;
3342
3443 let x = 0xA0 ;
3544 std:: str:: from_utf8_unchecked ( & [ 0xC0 , x] ) ;
45+ str:: from_utf8_unchecked ( & [ 0xC0 , x] ) ;
3646 }
3747
3848 // Invalid
3949 unsafe {
4050 std:: str:: from_utf8_unchecked ( & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
4151 //~^ 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`
4254 std:: str:: from_utf8_unchecked ( & [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
4355 //~^ 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`
4458 std:: str:: from_utf8_unchecked ( b"cl\x82 ippy" ) ;
4559 //~^ 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`
4662 std:: str:: from_utf8_unchecked ( concat_bytes ! ( b"cl" , b"\x82 ippy" ) ) ;
4763 //~^ 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`
4866 }
4967}
5068
5169pub fn from_utf8_mut ( ) {
5270 // Valid
5371 {
5472 std:: str:: from_utf8_mut ( & mut [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
73+ str:: from_utf8_mut ( & mut [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
5574 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' ] ) ;
5676
5777 let x = 0xa0 ;
5878 std:: str:: from_utf8_mut ( & mut [ 0xc0 , x] ) ;
79+ str:: from_utf8_mut ( & mut [ 0xc0 , x] ) ;
5980 }
6081
6182 // Invalid
6283 {
6384 std:: str:: from_utf8_mut ( & mut [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
6485 //~^ 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`
6588 std:: str:: from_utf8_mut ( & mut [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
6689 //~^ 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`
6792 }
6893}
6994
7095pub fn from_utf8 ( ) {
7196 // Valid
7297 {
7398 std:: str:: from_utf8 ( & [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
99+ str:: from_utf8 ( & [ 99 , 108 , 105 , 112 , 112 , 121 ] ) ;
74100 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' ] ) ;
75102 std:: str:: from_utf8 ( b"clippy" ) ;
103+ str:: from_utf8 ( b"clippy" ) ;
76104
77105 let x = 0xA0 ;
78106 std:: str:: from_utf8 ( & [ 0xC0 , x] ) ;
107+ str:: from_utf8 ( & [ 0xC0 , x] ) ;
79108 }
80109
81110 // Invalid
82111 {
83112 std:: str:: from_utf8 ( & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ) ;
84113 //~^ 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`
85116 std:: str:: from_utf8 ( & [ b'c' , b'l' , b'\x82' , b'i' , b'p' , b'p' , b'y' ] ) ;
86117 //~^ 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`
87120 std:: str:: from_utf8 ( b"cl\x82 ippy" ) ;
88121 //~^ WARN calls to `std::str::from_utf8`
122+ str:: from_utf8 ( b"cl\x82 ippy" ) ;
123+ //~^ WARN calls to `str::from_utf8`
89124 std:: str:: from_utf8 ( concat_bytes ! ( b"cl" , b"\x82 ippy" ) ) ;
90125 //~^ 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`
91128 }
92129}
93130
94131pub fn from_utf8_with_indirections ( ) {
95132 let mut a = [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ;
96133 std:: str:: from_utf8_mut ( & mut a) ;
97134 //~^ WARN calls to `std::str::from_utf8_mut`
135+ str:: from_utf8_mut ( & mut a) ;
136+ //~^ WARN calls to `str::from_utf8_mut`
98137 let mut b = & mut a;
99138 let mut c = b;
100139 std:: str:: from_utf8_mut ( c) ;
101140 //~^ WARN calls to `std::str::from_utf8_mut`
141+ str:: from_utf8_mut ( c) ;
142+ //~^ WARN calls to `str::from_utf8_mut`
102143 let mut c = & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ;
103144 std:: str:: from_utf8 ( c) ;
104145 //~^ WARN calls to `std::str::from_utf8`
146+ str:: from_utf8 ( c) ;
147+ //~^ WARN calls to `str::from_utf8`
105148 const INVALID_1 : [ u8 ; 7 ] = [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ;
106149 std:: str:: from_utf8 ( & INVALID_1 ) ;
107150 //~^ WARN calls to `std::str::from_utf8`
151+ str:: from_utf8 ( & INVALID_1 ) ;
152+ //~^ WARN calls to `str::from_utf8`
108153 static INVALID_2 : [ u8 ; 7 ] = [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ;
109154 std:: str:: from_utf8 ( & INVALID_2 ) ;
110155 //~^ WARN calls to `std::str::from_utf8`
156+ str:: from_utf8 ( & INVALID_2 ) ;
157+ //~^ WARN calls to `str::from_utf8`
111158 const INVALID_3 : & ' static [ u8 ; 7 ] = & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] ;
112159 std:: str:: from_utf8 ( INVALID_3 ) ;
113160 //~^ WARN calls to `std::str::from_utf8`
161+ str:: from_utf8 ( INVALID_3 ) ;
162+ //~^ WARN calls to `str::from_utf8`
114163 const INVALID_4 : & ' static [ u8 ; 7 ] = { & [ 99 , 108 , 130 , 105 , 112 , 112 , 121 ] } ;
115164 std:: str:: from_utf8 ( INVALID_4 ) ;
116165 //~^ WARN calls to `std::str::from_utf8`
166+ str:: from_utf8 ( INVALID_4 ) ;
167+ //~^ WARN calls to `str::from_utf8`
117168}
118169
119170fn main ( ) { }
0 commit comments