@@ -1447,6 +1447,19 @@ pub struct ExpansionConfig<'feat> {
1447
1447
pub recursion_limit : usize ,
1448
1448
}
1449
1449
1450
+ macro_rules! feature_tests {
1451
+ ( $( fn $getter: ident = $field: ident, ) * ) => {
1452
+ $(
1453
+ pub fn $getter( & self ) -> bool {
1454
+ match self . features {
1455
+ Some ( & Features { $field: true , .. } ) => true ,
1456
+ _ => false ,
1457
+ }
1458
+ }
1459
+ ) *
1460
+ }
1461
+ }
1462
+
1450
1463
impl < ' feat > ExpansionConfig < ' feat > {
1451
1464
pub fn default ( crate_name : String ) -> ExpansionConfig < ' static > {
1452
1465
ExpansionConfig {
@@ -1456,46 +1469,13 @@ impl<'feat> ExpansionConfig<'feat> {
1456
1469
}
1457
1470
}
1458
1471
1459
- pub fn enable_quotes ( & self ) -> bool {
1460
- match self . features {
1461
- Some ( & Features { allow_quote : true , .. } ) => true ,
1462
- _ => false ,
1463
- }
1464
- }
1465
-
1466
- pub fn enable_asm ( & self ) -> bool {
1467
- match self . features {
1468
- Some ( & Features { allow_asm : true , .. } ) => true ,
1469
- _ => false ,
1470
- }
1471
- }
1472
-
1473
- pub fn enable_log_syntax ( & self ) -> bool {
1474
- match self . features {
1475
- Some ( & Features { allow_log_syntax : true , .. } ) => true ,
1476
- _ => false ,
1477
- }
1478
- }
1479
-
1480
- pub fn enable_concat_idents ( & self ) -> bool {
1481
- match self . features {
1482
- Some ( & Features { allow_concat_idents : true , .. } ) => true ,
1483
- _ => false ,
1484
- }
1485
- }
1486
-
1487
- pub fn enable_trace_macros ( & self ) -> bool {
1488
- match self . features {
1489
- Some ( & Features { allow_trace_macros : true , .. } ) => true ,
1490
- _ => false ,
1491
- }
1492
- }
1493
-
1494
- pub fn enable_allow_internal_unstable ( & self ) -> bool {
1495
- match self . features {
1496
- Some ( & Features { allow_internal_unstable : true , .. } ) => true ,
1497
- _ => false
1498
- }
1472
+ feature_tests ! {
1473
+ fn enable_quotes = allow_quote,
1474
+ fn enable_asm = allow_asm,
1475
+ fn enable_log_syntax = allow_log_syntax,
1476
+ fn enable_concat_idents = allow_concat_idents,
1477
+ fn enable_trace_macros = allow_trace_macros,
1478
+ fn enable_allow_internal_unstable = allow_internal_unstable,
1499
1479
}
1500
1480
}
1501
1481
0 commit comments