@@ -97,12 +97,22 @@ fn lifetime_invalid() {
97
97
98
98
#[ test]
99
99
fn literal_string ( ) {
100
- assert_eq ! ( Literal :: string( "foo" ) . to_string( ) , "\" foo\" " ) ;
101
- assert_eq ! ( Literal :: string( "\" " ) . to_string( ) , "\" \\ \" \" " ) ;
102
- assert_eq ! ( Literal :: string( "didn't" ) . to_string( ) , "\" didn't\" " ) ;
103
- assert_eq ! (
104
- Literal :: string( "a\0 0b\0 7c\0 8d\0 e\0 " ) . to_string( ) ,
105
- "\" a\\ x000b\\ x007c\\ 08d\\ 0e\\ 0\" " ,
100
+ #[ track_caller]
101
+ fn assert ( literal : Literal , expected : & str ) {
102
+ assert_eq ! ( literal. to_string( ) , expected. trim( ) ) ;
103
+ }
104
+
105
+ assert ( Literal :: string ( "" ) , r#" "" "# ) ;
106
+ assert ( Literal :: string ( "aA" ) , r#" "aA" "# ) ;
107
+ assert ( Literal :: string ( "\t " ) , r#" "\t" "# ) ;
108
+ assert ( Literal :: string ( "❤" ) , r#" "❤" "# ) ;
109
+ assert ( Literal :: string ( "'" ) , r#" "'" "# ) ;
110
+ assert ( Literal :: string ( "\" " ) , r#" "\"" "# ) ;
111
+ assert ( Literal :: string ( "\0 " ) , r#" "\0" "# ) ;
112
+ assert ( Literal :: string ( "\u{1} " ) , r#" "\u{1}" "# ) ;
113
+ assert (
114
+ Literal :: string ( "a\0 0b\0 7c\0 8d\0 e\0 " ) ,
115
+ r#" "a\x000b\x007c\08d\0e\0" "# ,
106
116
) ;
107
117
108
118
"\" \\ \r \n x\" " . parse :: < TokenStream > ( ) . unwrap ( ) ;
@@ -135,26 +145,41 @@ fn literal_raw_string() {
135
145
136
146
#[ test]
137
147
fn literal_byte_character ( ) {
138
- assert_eq ! ( Literal :: byte_character( b'\0' ) . to_string( ) , r"b'\0'" ) ;
139
- assert_eq ! ( Literal :: byte_character( b'\t' ) . to_string( ) , r"b'\t'" ) ;
140
- assert_eq ! ( Literal :: byte_character( b'\n' ) . to_string( ) , r"b'\n'" ) ;
141
- assert_eq ! ( Literal :: byte_character( b'\r' ) . to_string( ) , r"b'\r'" ) ;
142
- assert_eq ! ( Literal :: byte_character( b'\'' ) . to_string( ) , r"b'\''" ) ;
143
- assert_eq ! ( Literal :: byte_character( b'\\' ) . to_string( ) , r"b'\\'" ) ;
144
- assert_eq ! ( Literal :: byte_character( b'\x1f' ) . to_string( ) , r"b'\x1F'" ) ;
145
- assert_eq ! ( Literal :: byte_character( b'"' ) . to_string( ) , "b'\" '" ) ;
148
+ #[ track_caller]
149
+ fn assert ( literal : Literal , expected : & str ) {
150
+ assert_eq ! ( literal. to_string( ) , expected. trim( ) ) ;
151
+ }
152
+
153
+ assert ( Literal :: byte_character ( b'a' ) , r#" b'a' "# ) ;
154
+ assert ( Literal :: byte_character ( b'\0' ) , r#" b'\0' "# ) ;
155
+ assert ( Literal :: byte_character ( b'\t' ) , r#" b'\t' "# ) ;
156
+ assert ( Literal :: byte_character ( b'\n' ) , r#" b'\n' "# ) ;
157
+ assert ( Literal :: byte_character ( b'\r' ) , r#" b'\r' "# ) ;
158
+ assert ( Literal :: byte_character ( b'\'' ) , r#" b'\'' "# ) ;
159
+ assert ( Literal :: byte_character ( b'\\' ) , r#" b'\\' "# ) ;
160
+ assert ( Literal :: byte_character ( b'\x1f' ) , r#" b'\x1F' "# ) ;
161
+ assert ( Literal :: byte_character ( b'"' ) , r#" b'"' "# ) ;
146
162
}
147
163
148
164
#[ test]
149
165
fn literal_byte_string ( ) {
150
- assert_eq ! ( Literal :: byte_string( b"" ) . to_string( ) , "b\" \" " ) ;
151
- assert_eq ! (
152
- Literal :: byte_string( b"\0 \t \n \r \" \\ 2\x10 " ) . to_string( ) ,
153
- "b\" \\ 0\\ t\\ n\\ r\\ \" \\ \\ 2\\ x10\" " ,
154
- ) ;
155
- assert_eq ! (
156
- Literal :: byte_string( b"a\0 0b\0 7c\0 8d\0 e\0 " ) . to_string( ) ,
157
- "b\" a\\ x000b\\ x007c\\ 08d\\ 0e\\ 0\" " ,
166
+ #[ track_caller]
167
+ fn assert ( literal : Literal , expected : & str ) {
168
+ assert_eq ! ( literal. to_string( ) , expected. trim( ) ) ;
169
+ }
170
+
171
+ assert ( Literal :: byte_string ( b"" ) , r#" b"" "# ) ;
172
+ assert ( Literal :: byte_string ( b"\0 " ) , r#" b"\0" "# ) ;
173
+ assert ( Literal :: byte_string ( b"\t " ) , r#" b"\t" "# ) ;
174
+ assert ( Literal :: byte_string ( b"\n " ) , r#" b"\n" "# ) ;
175
+ assert ( Literal :: byte_string ( b"\r " ) , r#" b"\r" "# ) ;
176
+ assert ( Literal :: byte_string ( b"\" " ) , r#" b"\"" "# ) ;
177
+ assert ( Literal :: byte_string ( b"\\ " ) , r#" b"\\" "# ) ;
178
+ assert ( Literal :: byte_string ( b"\x1f " ) , r#" b"\x1F" "# ) ;
179
+ assert ( Literal :: byte_string ( b"'" ) , r#" b"'" "# ) ;
180
+ assert (
181
+ Literal :: byte_string ( b"a\0 0b\0 7c\0 8d\0 e\0 " ) ,
182
+ r#" b"a\x000b\x007c\08d\0e\0" "# ,
158
183
) ;
159
184
160
185
"b\" \\ \r \n x\" " . parse :: < TokenStream > ( ) . unwrap ( ) ;
@@ -165,27 +190,39 @@ fn literal_byte_string() {
165
190
166
191
#[ test]
167
192
fn literal_c_string ( ) {
168
- assert_eq ! ( Literal :: c_string( <& CStr >:: default ( ) ) . to_string( ) , "c\" \" " ) ;
169
-
170
- let cstr = CStr :: from_bytes_with_nul ( b"aA\0 " ) . unwrap ( ) ;
171
- assert_eq ! ( Literal :: c_string( cstr) . to_string( ) , r#" c"aA" "# . trim( ) ) ;
172
-
173
- let cstr = CStr :: from_bytes_with_nul ( b"\t \0 " ) . unwrap ( ) ;
174
- assert_eq ! ( Literal :: c_string( cstr) . to_string( ) , r#" c"\t" "# . trim( ) ) ;
175
-
176
- let cstr = CStr :: from_bytes_with_nul ( b"\xE2 \x9D \xA4 \0 " ) . unwrap ( ) ;
177
- assert_eq ! ( Literal :: c_string( cstr) . to_string( ) , r#" c"❤" "# . trim( ) ) ;
178
-
179
- let cstr = CStr :: from_bytes_with_nul ( b"'\0 " ) . unwrap ( ) ;
180
- assert_eq ! ( Literal :: c_string( cstr) . to_string( ) , r#" c"'" "# . trim( ) ) ;
181
-
182
- let cstr = CStr :: from_bytes_with_nul ( b"\" \0 " ) . unwrap ( ) ;
183
- assert_eq ! ( Literal :: c_string( cstr) . to_string( ) , r#" c"\"" "# . trim( ) ) ;
193
+ #[ track_caller]
194
+ fn assert ( literal : Literal , expected : & str ) {
195
+ assert_eq ! ( literal. to_string( ) , expected. trim( ) ) ;
196
+ }
184
197
185
- let cstr = CStr :: from_bytes_with_nul ( b"\x7F \xFF \xFE \xCC \xB3 \0 " ) . unwrap ( ) ;
186
- assert_eq ! (
187
- Literal :: c_string( cstr) . to_string( ) ,
188
- r#" c"\u{7f}\xFF\xFE\u{333}" "# . trim( ) ,
198
+ assert ( Literal :: c_string ( <& CStr >:: default ( ) ) , r#" c"" "# ) ;
199
+ assert (
200
+ Literal :: c_string ( CStr :: from_bytes_with_nul ( b"aA\0 " ) . unwrap ( ) ) ,
201
+ r#" c"aA" "# ,
202
+ ) ;
203
+ assert (
204
+ Literal :: c_string ( CStr :: from_bytes_with_nul ( b"aA\0 " ) . unwrap ( ) ) ,
205
+ r#" c"aA" "# ,
206
+ ) ;
207
+ assert (
208
+ Literal :: c_string ( CStr :: from_bytes_with_nul ( b"\t \0 " ) . unwrap ( ) ) ,
209
+ r#" c"\t" "# ,
210
+ ) ;
211
+ assert (
212
+ Literal :: c_string ( CStr :: from_bytes_with_nul ( b"\xE2 \x9D \xA4 \0 " ) . unwrap ( ) ) ,
213
+ r#" c"❤" "# ,
214
+ ) ;
215
+ assert (
216
+ Literal :: c_string ( CStr :: from_bytes_with_nul ( b"'\0 " ) . unwrap ( ) ) ,
217
+ r#" c"'" "# ,
218
+ ) ;
219
+ assert (
220
+ Literal :: c_string ( CStr :: from_bytes_with_nul ( b"\" \0 " ) . unwrap ( ) ) ,
221
+ r#" c"\"" "# ,
222
+ ) ;
223
+ assert (
224
+ Literal :: c_string ( CStr :: from_bytes_with_nul ( b"\x7F \xFF \xFE \xCC \xB3 \0 " ) . unwrap ( ) ) ,
225
+ r#" c"\u{7f}\xFF\xFE\u{333}" "# ,
189
226
) ;
190
227
191
228
let strings = r###"
@@ -224,56 +261,80 @@ fn literal_c_string() {
224
261
225
262
#[ test]
226
263
fn literal_character ( ) {
227
- assert_eq ! ( Literal :: character( 'x' ) . to_string( ) , "'x'" ) ;
228
- assert_eq ! ( Literal :: character( '\'' ) . to_string( ) , r"'\''" ) ;
229
- assert_eq ! ( Literal :: character( '"' ) . to_string( ) , "'\" '" ) ;
264
+ #[ track_caller]
265
+ fn assert ( literal : Literal , expected : & str ) {
266
+ assert_eq ! ( literal. to_string( ) , expected. trim( ) ) ;
267
+ }
268
+
269
+ assert ( Literal :: character ( 'a' ) , r#" 'a' "# ) ;
270
+ assert ( Literal :: character ( '\t' ) , r#" '\t' "# ) ;
271
+ assert ( Literal :: character ( '❤' ) , r#" '❤' "# ) ;
272
+ assert ( Literal :: character ( '\'' ) , r#" '\'' "# ) ;
273
+ assert ( Literal :: character ( '"' ) , r#" '"' "# ) ;
274
+ assert ( Literal :: character ( '\0' ) , r#" '\0' "# ) ;
275
+ assert ( Literal :: character ( '\u{1}' ) , r#" '\u{1}' "# ) ;
230
276
}
231
277
232
278
#[ test]
233
279
fn literal_integer ( ) {
234
- assert_eq ! ( Literal :: u8_suffixed( 10 ) . to_string( ) , "10u8" ) ;
235
- assert_eq ! ( Literal :: u16_suffixed( 10 ) . to_string( ) , "10u16" ) ;
236
- assert_eq ! ( Literal :: u32_suffixed( 10 ) . to_string( ) , "10u32" ) ;
237
- assert_eq ! ( Literal :: u64_suffixed( 10 ) . to_string( ) , "10u64" ) ;
238
- assert_eq ! ( Literal :: u128_suffixed( 10 ) . to_string( ) , "10u128" ) ;
239
- assert_eq ! ( Literal :: usize_suffixed( 10 ) . to_string( ) , "10usize" ) ;
240
-
241
- assert_eq ! ( Literal :: i8_suffixed( 10 ) . to_string( ) , "10i8" ) ;
242
- assert_eq ! ( Literal :: i16_suffixed( 10 ) . to_string( ) , "10i16" ) ;
243
- assert_eq ! ( Literal :: i32_suffixed( 10 ) . to_string( ) , "10i32" ) ;
244
- assert_eq ! ( Literal :: i64_suffixed( 10 ) . to_string( ) , "10i64" ) ;
245
- assert_eq ! ( Literal :: i128_suffixed( 10 ) . to_string( ) , "10i128" ) ;
246
- assert_eq ! ( Literal :: isize_suffixed( 10 ) . to_string( ) , "10isize" ) ;
247
-
248
- assert_eq ! ( Literal :: u8_unsuffixed( 10 ) . to_string( ) , "10" ) ;
249
- assert_eq ! ( Literal :: u16_unsuffixed( 10 ) . to_string( ) , "10" ) ;
250
- assert_eq ! ( Literal :: u32_unsuffixed( 10 ) . to_string( ) , "10" ) ;
251
- assert_eq ! ( Literal :: u64_unsuffixed( 10 ) . to_string( ) , "10" ) ;
252
- assert_eq ! ( Literal :: u128_unsuffixed( 10 ) . to_string( ) , "10" ) ;
253
- assert_eq ! ( Literal :: usize_unsuffixed( 10 ) . to_string( ) , "10" ) ;
254
-
255
- assert_eq ! ( Literal :: i8_unsuffixed( 10 ) . to_string( ) , "10" ) ;
256
- assert_eq ! ( Literal :: i16_unsuffixed( 10 ) . to_string( ) , "10" ) ;
257
- assert_eq ! ( Literal :: i32_unsuffixed( 10 ) . to_string( ) , "10" ) ;
258
- assert_eq ! ( Literal :: i64_unsuffixed( 10 ) . to_string( ) , "10" ) ;
259
- assert_eq ! ( Literal :: i128_unsuffixed( 10 ) . to_string( ) , "10" ) ;
260
- assert_eq ! ( Literal :: isize_unsuffixed( 10 ) . to_string( ) , "10" ) ;
261
-
262
- assert_eq ! ( Literal :: i32_suffixed( -10 ) . to_string( ) , "-10i32" ) ;
263
- assert_eq ! ( Literal :: i32_unsuffixed( -10 ) . to_string( ) , "-10" ) ;
280
+ #[ track_caller]
281
+ fn assert ( literal : Literal , expected : & str ) {
282
+ assert_eq ! ( literal. to_string( ) , expected) ;
283
+ }
284
+
285
+ assert ( Literal :: u8_suffixed ( 10 ) , "10u8" ) ;
286
+ assert ( Literal :: u16_suffixed ( 10 ) , "10u16" ) ;
287
+ assert ( Literal :: u32_suffixed ( 10 ) , "10u32" ) ;
288
+ assert ( Literal :: u64_suffixed ( 10 ) , "10u64" ) ;
289
+ assert ( Literal :: u128_suffixed ( 10 ) , "10u128" ) ;
290
+ assert ( Literal :: usize_suffixed ( 10 ) , "10usize" ) ;
291
+
292
+ assert ( Literal :: i8_suffixed ( 10 ) , "10i8" ) ;
293
+ assert ( Literal :: i16_suffixed ( 10 ) , "10i16" ) ;
294
+ assert ( Literal :: i32_suffixed ( 10 ) , "10i32" ) ;
295
+ assert ( Literal :: i64_suffixed ( 10 ) , "10i64" ) ;
296
+ assert ( Literal :: i128_suffixed ( 10 ) , "10i128" ) ;
297
+ assert ( Literal :: isize_suffixed ( 10 ) , "10isize" ) ;
298
+
299
+ assert ( Literal :: u8_unsuffixed ( 10 ) , "10" ) ;
300
+ assert ( Literal :: u16_unsuffixed ( 10 ) , "10" ) ;
301
+ assert ( Literal :: u32_unsuffixed ( 10 ) , "10" ) ;
302
+ assert ( Literal :: u64_unsuffixed ( 10 ) , "10" ) ;
303
+ assert ( Literal :: u128_unsuffixed ( 10 ) , "10" ) ;
304
+ assert ( Literal :: usize_unsuffixed ( 10 ) , "10" ) ;
305
+
306
+ assert ( Literal :: i8_unsuffixed ( 10 ) , "10" ) ;
307
+ assert ( Literal :: i16_unsuffixed ( 10 ) , "10" ) ;
308
+ assert ( Literal :: i32_unsuffixed ( 10 ) , "10" ) ;
309
+ assert ( Literal :: i64_unsuffixed ( 10 ) , "10" ) ;
310
+ assert ( Literal :: i128_unsuffixed ( 10 ) , "10" ) ;
311
+ assert ( Literal :: isize_unsuffixed ( 10 ) , "10" ) ;
312
+
313
+ assert ( Literal :: i32_suffixed ( -10 ) , "-10i32" ) ;
314
+ assert ( Literal :: i32_unsuffixed ( -10 ) , "-10" ) ;
264
315
}
265
316
266
317
#[ test]
267
318
fn literal_float ( ) {
268
- assert_eq ! ( Literal :: f32_suffixed( 10.0 ) . to_string( ) , "10f32" ) ;
269
- assert_eq ! ( Literal :: f32_suffixed( -10.0 ) . to_string( ) , "-10f32" ) ;
270
- assert_eq ! ( Literal :: f64_suffixed( 10.0 ) . to_string( ) , "10f64" ) ;
271
- assert_eq ! ( Literal :: f64_suffixed( -10.0 ) . to_string( ) , "-10f64" ) ;
272
-
273
- assert_eq ! ( Literal :: f32_unsuffixed( 10.0 ) . to_string( ) , "10.0" ) ;
274
- assert_eq ! ( Literal :: f32_unsuffixed( -10.0 ) . to_string( ) , "-10.0" ) ;
275
- assert_eq ! ( Literal :: f64_unsuffixed( 10.0 ) . to_string( ) , "10.0" ) ;
276
- assert_eq ! ( Literal :: f64_unsuffixed( -10.0 ) . to_string( ) , "-10.0" ) ;
319
+ #[ track_caller]
320
+ fn assert ( literal : Literal , expected : & str ) {
321
+ assert_eq ! ( literal. to_string( ) , expected) ;
322
+ }
323
+
324
+ assert ( Literal :: f32_suffixed ( 10.0 ) , "10f32" ) ;
325
+ assert ( Literal :: f32_suffixed ( -10.0 ) , "-10f32" ) ;
326
+ assert ( Literal :: f64_suffixed ( 10.0 ) , "10f64" ) ;
327
+ assert ( Literal :: f64_suffixed ( -10.0 ) , "-10f64" ) ;
328
+
329
+ assert ( Literal :: f32_unsuffixed ( 10.0 ) , "10.0" ) ;
330
+ assert ( Literal :: f32_unsuffixed ( -10.0 ) , "-10.0" ) ;
331
+ assert ( Literal :: f64_unsuffixed ( 10.0 ) , "10.0" ) ;
332
+ assert ( Literal :: f64_unsuffixed ( -10.0 ) , "-10.0" ) ;
333
+
334
+ assert (
335
+ Literal :: f64_unsuffixed ( 1e100 ) ,
336
+ "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0" ,
337
+ ) ;
277
338
}
278
339
279
340
#[ test]
0 commit comments