@@ -1454,27 +1454,36 @@ mod test {
1454
1454
assert ! ( ( shouldmatch. len( ) == 0 ) ||
1455
1455
( varrefs. len( ) > * shouldmatch. iter( ) . max( ) . unwrap( ) ) ) ;
1456
1456
for ( idx, varref) in varrefs. iter ( ) . enumerate ( ) {
1457
+ let print_hygiene_debug_info = || {
1458
+ // good lord, you can't make a path with 0 segments, can you?
1459
+ let final_varref_ident = match varref. segments . last ( ) {
1460
+ Some ( pathsegment) => pathsegment. identifier ,
1461
+ None => fail ! ( "varref with 0 path segments?" )
1462
+ } ;
1463
+ let varref_name = mtwt:: resolve ( final_varref_ident) ;
1464
+ let varref_idents : Vec < ast:: Ident >
1465
+ = varref. segments . iter ( ) . map ( |s| s. identifier )
1466
+ . collect ( ) ;
1467
+ println ! ( "varref #{}: {}, resolves to {}" , idx, varref_idents, varref_name) ;
1468
+ let string = token:: get_ident ( final_varref_ident) ;
1469
+ println ! ( "varref's first segment's string: \" {}\" " , string. get( ) ) ;
1470
+ println ! ( "binding #{}: {}, resolves to {}" ,
1471
+ binding_idx, * bindings. get( binding_idx) , binding_name) ;
1472
+ mtwt:: with_sctable ( |x| mtwt:: display_sctable ( x) ) ;
1473
+ } ;
1457
1474
if shouldmatch. contains ( & idx) {
1458
1475
// it should be a path of length 1, and it should
1459
1476
// be free-identifier=? or bound-identifier=? to the given binding
1460
1477
assert_eq ! ( varref. segments. len( ) , 1 ) ;
1461
- let varref_name = mtwt:: resolve ( varref. segments
1462
- . get ( 0 )
1463
- . identifier ) ;
1478
+ let varref_name = mtwt:: resolve ( varref. segments . get ( 0 ) . identifier ) ;
1464
1479
let varref_marks = mtwt:: marksof ( varref. segments
1465
1480
. get ( 0 )
1466
1481
. identifier
1467
1482
. ctxt ,
1468
1483
invalid_name) ;
1469
1484
if !( varref_name==binding_name) {
1470
- let varref_idents : Vec < ast:: Ident >
1471
- = varref. segments . iter ( ) . map ( |s|
1472
- s. identifier )
1473
- . collect ( ) ;
1474
1485
println ! ( "uh oh, should match but doesn't:" ) ;
1475
- println ! ( "varref #{}: {}" , idx, varref_idents) ;
1476
- println ! ( "binding #{}: {}" , binding_idx, * bindings. get( binding_idx) ) ;
1477
- mtwt:: with_sctable ( |x| mtwt:: display_sctable ( x) ) ;
1486
+ print_hygiene_debug_info ( ) ;
1478
1487
}
1479
1488
assert_eq ! ( varref_name, binding_name) ;
1480
1489
if bound_ident_check {
@@ -1488,27 +1497,11 @@ mod test {
1488
1497
&& ( varref_name == binding_name) ;
1489
1498
// temp debugging:
1490
1499
if fail {
1491
- let varref_idents : Vec < ast:: Ident >
1492
- = varref. segments . iter ( ) . map ( |s|
1493
- s. identifier )
1494
- . collect ( ) ;
1495
1500
println ! ( "failure on test {}" , test_idx) ;
1496
1501
println ! ( "text of test case: \" {}\" " , teststr) ;
1497
1502
println ! ( "" ) ;
1498
1503
println ! ( "uh oh, matches but shouldn't:" ) ;
1499
- println ! ( "varref #{}: {}, resolves to {}" , idx, varref_idents,
1500
- varref_name) ;
1501
- // good lord, you can't make a path with 0 segments, can you?
1502
- let string = token:: get_ident ( varref. segments
1503
- . get ( 0 )
1504
- . identifier ) ;
1505
- println ! ( "varref's first segment's uint: {}, and string: \" {}\" " ,
1506
- varref. segments. get( 0 ) . identifier. name,
1507
- string. get( ) ) ;
1508
- println ! ( "binding #{}: {}, resolves to {}" ,
1509
- binding_idx, * bindings. get( binding_idx) ,
1510
- binding_name) ;
1511
- mtwt:: with_sctable ( |x| mtwt:: display_sctable ( x) ) ;
1504
+ print_hygiene_debug_info ( ) ;
1512
1505
}
1513
1506
assert ! ( !fail) ;
1514
1507
}
0 commit comments