@@ -261,9 +261,9 @@ impl Ident {
261
261
( self . sym . clone ( ) , self . ctxt )
262
262
}
263
263
264
- /// Returns true if `c` is a valid character for an identifier start.
265
264
#[ inline]
266
- pub fn is_valid_start ( c : char ) -> bool {
265
+ pub fn is_valid_ascii_start ( c : u8 ) -> bool {
266
+ debug_assert ! ( c. is_ascii( ) ) ;
267
267
// This contains `$` (36) and `_` (95)
268
268
const ASCII_START : Align64 < [ bool ; 128 ] > = Align64 ( [
269
269
F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F ,
@@ -272,18 +272,22 @@ impl Ident {
272
272
T , T , T , T , F , F , F , F , T , F , T , T , T , T , T , T , T , T , T , T , T , T , T , T , T , T , T , T , T ,
273
273
T , T , T , T , T , T , T , F , F , F , F , F ,
274
274
] ) ;
275
+ ASCII_START . 0 [ c as usize ]
276
+ }
275
277
278
+ /// Returns true if `c` is a valid character for an identifier start.
279
+ #[ inline]
280
+ pub fn is_valid_start ( c : char ) -> bool {
276
281
if c. is_ascii ( ) {
277
- return ASCII_START . 0 [ c as usize ] ;
282
+ Self :: is_valid_ascii_start ( c as u8 )
283
+ } else {
284
+ unicode_id_start:: is_id_start_unicode ( c)
278
285
}
279
-
280
- unicode_id_start:: is_id_start_unicode ( c)
281
286
}
282
287
283
- /// Returns true if `c` is a valid character for an identifier part after
284
- /// start.
285
288
#[ inline]
286
- pub fn is_valid_continue ( c : char ) -> bool {
289
+ pub fn is_valid_ascii_continue ( c : u8 ) -> bool {
290
+ debug_assert ! ( c. is_ascii( ) ) ;
287
291
// This contains `$` (36)
288
292
const ASCII_CONTINUE : Align64 < [ bool ; 128 ] > = Align64 ( [
289
293
F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F , F ,
@@ -292,12 +296,18 @@ impl Ident {
292
296
T , T , T , T , F , F , F , F , T , F , T , T , T , T , T , T , T , T , T , T , T , T , T , T , T , T , T , T , T ,
293
297
T , T , T , T , T , T , T , F , F , F , F , F ,
294
298
] ) ;
299
+ ASCII_CONTINUE . 0 [ c as usize ]
300
+ }
295
301
302
+ /// Returns true if `c` is a valid character for an identifier part after
303
+ /// start.
304
+ #[ inline]
305
+ pub fn is_valid_continue ( c : char ) -> bool {
296
306
if c. is_ascii ( ) {
297
- return ASCII_CONTINUE . 0 [ c as usize ] ;
307
+ Self :: is_valid_ascii_continue ( c as u8 )
308
+ } else {
309
+ unicode_id_start:: is_id_continue_unicode ( c)
298
310
}
299
-
300
- unicode_id_start:: is_id_continue_unicode ( c)
301
311
}
302
312
303
313
/// Alternative for `toIdentifier` of babel.
0 commit comments