File tree 1 file changed +10
-9
lines changed
compiler/rustc_ast_pretty/src 1 file changed +10
-9
lines changed Original file line number Diff line number Diff line change @@ -378,27 +378,28 @@ impl Printer {
378
378
}
379
379
}
380
380
381
- fn check_stack ( & mut self , k : usize ) {
382
- if let Some ( & x) = self . scan_stack . front ( ) {
381
+ fn check_stack ( & mut self , mut k : usize ) {
382
+ while let Some ( & x) = self . scan_stack . front ( ) {
383
383
match self . buf [ x] . token {
384
384
Token :: Begin ( _) => {
385
- if k > 0 {
386
- self . scan_stack . pop_front ( ) . unwrap ( ) ;
387
- self . buf [ x] . size += self . right_total ;
388
- self . check_stack ( k - 1 ) ;
385
+ if k == 0 {
386
+ break ;
389
387
}
388
+ self . scan_stack . pop_front ( ) . unwrap ( ) ;
389
+ self . buf [ x] . size += self . right_total ;
390
+ k -= 1 ;
390
391
}
391
392
Token :: End => {
392
393
// paper says + not =, but that makes no sense.
393
394
self . scan_stack . pop_front ( ) . unwrap ( ) ;
394
395
self . buf [ x] . size = 1 ;
395
- self . check_stack ( k + 1 ) ;
396
+ k += 1 ;
396
397
}
397
398
_ => {
398
399
self . scan_stack . pop_front ( ) . unwrap ( ) ;
399
400
self . buf [ x] . size += self . right_total ;
400
- if k > 0 {
401
- self . check_stack ( k ) ;
401
+ if k == 0 {
402
+ break ;
402
403
}
403
404
}
404
405
}
You can’t perform that action at this time.
0 commit comments