@@ -38,14 +38,18 @@ pub fn _cssparser_internal_max_len(input: TokenStream) -> TokenStream {
38
38
. into ( )
39
39
}
40
40
41
+ fn get_byte_from_lit ( lit : & syn:: Lit ) -> u8 {
42
+ if let syn:: Lit :: Byte ( ref byte) = * lit {
43
+ byte. value ( )
44
+ } else {
45
+ panic ! ( "Found a pattern that wasn't a byte" )
46
+ }
47
+ }
48
+
41
49
fn get_byte_from_expr_lit ( expr : & syn:: Expr ) -> u8 {
42
50
match * expr {
43
51
syn:: Expr :: Lit ( syn:: ExprLit { ref lit, .. } ) => {
44
- if let syn:: Lit :: Byte ( ref byte) = * lit {
45
- byte. value ( )
46
- } else {
47
- panic ! ( "Found a pattern that wasn't a byte" )
48
- }
52
+ get_byte_from_lit ( lit)
49
53
}
50
54
_ => unreachable ! ( ) ,
51
55
}
@@ -59,15 +63,15 @@ fn parse_pat_to_table<'a>(
59
63
table : & mut [ u8 ; 256 ] ,
60
64
) {
61
65
match pat {
62
- & syn:: Pat :: Lit ( syn:: PatLit { ref expr , .. } ) => {
63
- let value = get_byte_from_expr_lit ( expr ) ;
66
+ & syn:: Pat :: Lit ( syn:: PatLit { ref lit , .. } ) => {
67
+ let value = get_byte_from_lit ( lit ) ;
64
68
if table[ value as usize ] == 0 {
65
69
table[ value as usize ] = case_id;
66
70
}
67
71
}
68
- & syn:: Pat :: Range ( syn:: PatRange { ref lo , ref hi , .. } ) => {
69
- let lo = get_byte_from_expr_lit ( lo ) ;
70
- let hi = get_byte_from_expr_lit ( hi ) ;
72
+ & syn:: Pat :: Range ( syn:: PatRange { ref start , ref end , .. } ) => {
73
+ let lo = get_byte_from_expr_lit ( & start . as_ref ( ) . unwrap ( ) ) ;
74
+ let hi = get_byte_from_expr_lit ( & end . as_ref ( ) . unwrap ( ) ) ;
71
75
for value in lo..hi {
72
76
if table[ value as usize ] == 0 {
73
77
table[ value as usize ] = case_id;
0 commit comments