@@ -538,6 +538,47 @@ macro_rules! make_ast_visitor {
538
538
return_result!( V )
539
539
}
540
540
541
+ pub fn walk_inline_asm<$( $lt, ) ? V : $trait$( <$lt>) ?>(
542
+ vis: & mut V ,
543
+ asm: ref_t!( InlineAsm )
544
+ ) -> result!( V ) {
545
+ // FIXME: Visit spans inside all this currently ignored stuff.
546
+ let InlineAsm {
547
+ asm_macro: _,
548
+ template: _,
549
+ template_strs: _,
550
+ operands,
551
+ clobber_abis: _,
552
+ options: _,
553
+ line_spans: _,
554
+ } = asm;
555
+ for ( op, span) in operands {
556
+ match op {
557
+ InlineAsmOperand :: In { expr, reg: _ }
558
+ | InlineAsmOperand :: Out { expr: Some ( expr) , reg: _, late: _ }
559
+ | InlineAsmOperand :: InOut { expr, reg: _, late: _ } => {
560
+ try_v!( vis. visit_expr( expr) ) ;
561
+ }
562
+ InlineAsmOperand :: Out { expr: None , reg: _, late: _ } => { }
563
+ InlineAsmOperand :: SplitInOut { in_expr, out_expr, reg: _, late: _ } => {
564
+ try_v!( vis. visit_expr( in_expr) ) ;
565
+ visit_o!( out_expr, |out_expr| vis. visit_expr( out_expr) ) ;
566
+ }
567
+ InlineAsmOperand :: Const { anon_const } => {
568
+ try_v!( vis. visit_anon_const( anon_const) ) ;
569
+ }
570
+ InlineAsmOperand :: Sym { sym } => {
571
+ try_v!( vis. visit_inline_asm_sym( sym) ) ;
572
+ }
573
+ InlineAsmOperand :: Label { block } => {
574
+ try_v!( vis. visit_block( block) ) ;
575
+ }
576
+ }
577
+ try_v!( visit_span!( vis, span) ) ;
578
+ }
579
+ return_result!( V )
580
+ }
581
+
541
582
pub fn walk_label<$( $lt, ) ? V : $trait$( <$lt>) ?>(
542
583
vis: & mut V ,
543
584
label: ref_t!( Label )
@@ -1339,38 +1380,6 @@ pub mod visit {
1339
1380
visitor. visit_path ( path, DUMMY_NODE_ID )
1340
1381
}
1341
1382
1342
- pub fn walk_inline_asm < ' a , V : Visitor < ' a > > ( visitor : & mut V , asm : & ' a InlineAsm ) -> V :: Result {
1343
- let InlineAsm {
1344
- asm_macro : _,
1345
- template : _,
1346
- template_strs : _,
1347
- operands,
1348
- clobber_abis : _,
1349
- options : _,
1350
- line_spans : _,
1351
- } = asm;
1352
- for ( op, _span) in operands {
1353
- match op {
1354
- InlineAsmOperand :: In { expr, reg : _ }
1355
- | InlineAsmOperand :: Out { expr : Some ( expr) , reg : _, late : _ }
1356
- | InlineAsmOperand :: InOut { expr, reg : _, late : _ } => {
1357
- try_visit ! ( visitor. visit_expr( expr) )
1358
- }
1359
- InlineAsmOperand :: Out { expr : None , reg : _, late : _ } => { }
1360
- InlineAsmOperand :: SplitInOut { in_expr, out_expr, reg : _, late : _ } => {
1361
- try_visit ! ( visitor. visit_expr( in_expr) ) ;
1362
- visit_opt ! ( visitor, visit_expr, out_expr) ;
1363
- }
1364
- InlineAsmOperand :: Const { anon_const } => {
1365
- try_visit ! ( visitor. visit_anon_const( anon_const) )
1366
- }
1367
- InlineAsmOperand :: Sym { sym } => try_visit ! ( visitor. visit_inline_asm_sym( sym) ) ,
1368
- InlineAsmOperand :: Label { block } => try_visit ! ( visitor. visit_block( block) ) ,
1369
- }
1370
- }
1371
- V :: Result :: output ( )
1372
- }
1373
-
1374
1383
pub fn walk_inline_asm_sym < ' a , V : Visitor < ' a > > (
1375
1384
visitor : & mut V ,
1376
1385
InlineAsmSym { id, qself, path } : & ' a InlineAsmSym ,
@@ -2522,37 +2531,6 @@ pub mod mut_visit {
2522
2531
vis. visit_span ( span) ;
2523
2532
}
2524
2533
2525
- fn walk_inline_asm < T : MutVisitor > ( vis : & mut T , asm : & mut InlineAsm ) {
2526
- // FIXME: Visit spans inside all this currently ignored stuff.
2527
- let InlineAsm {
2528
- asm_macro : _,
2529
- template : _,
2530
- template_strs : _,
2531
- operands,
2532
- clobber_abis : _,
2533
- options : _,
2534
- line_spans : _,
2535
- } = asm;
2536
- for ( op, span) in operands {
2537
- match op {
2538
- InlineAsmOperand :: In { expr, reg : _ }
2539
- | InlineAsmOperand :: Out { expr : Some ( expr) , reg : _, late : _ }
2540
- | InlineAsmOperand :: InOut { expr, reg : _, late : _ } => vis. visit_expr ( expr) ,
2541
- InlineAsmOperand :: Out { expr : None , reg : _, late : _ } => { }
2542
- InlineAsmOperand :: SplitInOut { in_expr, out_expr, reg : _, late : _ } => {
2543
- vis. visit_expr ( in_expr) ;
2544
- if let Some ( out_expr) = out_expr {
2545
- vis. visit_expr ( out_expr) ;
2546
- }
2547
- }
2548
- InlineAsmOperand :: Const { anon_const } => vis. visit_anon_const ( anon_const) ,
2549
- InlineAsmOperand :: Sym { sym } => vis. visit_inline_asm_sym ( sym) ,
2550
- InlineAsmOperand :: Label { block } => vis. visit_block ( block) ,
2551
- }
2552
- vis. visit_span ( span) ;
2553
- }
2554
- }
2555
-
2556
2534
fn walk_inline_asm_sym < T : MutVisitor > (
2557
2535
vis : & mut T ,
2558
2536
InlineAsmSym { id, qself, path } : & mut InlineAsmSym ,
0 commit comments