@@ -451,36 +451,7 @@ impl LoweringContext<'_> {
451
451
} )
452
452
}
453
453
ExprKind :: Ret ( ref e) => hir:: ExprKind :: Ret ( e. as_ref ( ) . map ( |x| P ( self . lower_expr ( x) ) ) ) ,
454
- ExprKind :: InlineAsm ( ref asm) => {
455
- let hir_asm = hir:: InlineAsm {
456
- inputs : asm. inputs . iter ( ) . map ( |& ( ref c, _) | c. clone ( ) ) . collect ( ) ,
457
- outputs : asm. outputs
458
- . iter ( )
459
- . map ( |out| hir:: InlineAsmOutput {
460
- constraint : out. constraint . clone ( ) ,
461
- is_rw : out. is_rw ,
462
- is_indirect : out. is_indirect ,
463
- span : out. expr . span ,
464
- } )
465
- . collect ( ) ,
466
- asm : asm. asm . clone ( ) ,
467
- asm_str_style : asm. asm_str_style ,
468
- clobbers : asm. clobbers . clone ( ) . into ( ) ,
469
- volatile : asm. volatile ,
470
- alignstack : asm. alignstack ,
471
- dialect : asm. dialect ,
472
- ctxt : asm. ctxt ,
473
- } ;
474
- let outputs = asm. outputs
475
- . iter ( )
476
- . map ( |out| self . lower_expr ( & out. expr ) )
477
- . collect ( ) ;
478
- let inputs = asm. inputs
479
- . iter ( )
480
- . map ( |& ( _, ref input) | self . lower_expr ( input) )
481
- . collect ( ) ;
482
- hir:: ExprKind :: InlineAsm ( P ( hir_asm) , outputs, inputs)
483
- }
454
+ ExprKind :: InlineAsm ( ref asm) => self . lower_expr_asm ( asm) ,
484
455
ExprKind :: Struct ( ref path, ref fields, ref maybe_expr) => hir:: ExprKind :: Struct (
485
456
P ( self . lower_qpath (
486
457
e. id ,
@@ -526,6 +497,40 @@ impl LoweringContext<'_> {
526
497
}
527
498
}
528
499
500
+ fn lower_expr_asm ( & mut self , asm : & InlineAsm ) -> hir:: ExprKind {
501
+ let hir_asm = hir:: InlineAsm {
502
+ inputs : asm. inputs . iter ( ) . map ( |& ( ref c, _) | c. clone ( ) ) . collect ( ) ,
503
+ outputs : asm. outputs
504
+ . iter ( )
505
+ . map ( |out| hir:: InlineAsmOutput {
506
+ constraint : out. constraint . clone ( ) ,
507
+ is_rw : out. is_rw ,
508
+ is_indirect : out. is_indirect ,
509
+ span : out. expr . span ,
510
+ } )
511
+ . collect ( ) ,
512
+ asm : asm. asm . clone ( ) ,
513
+ asm_str_style : asm. asm_str_style ,
514
+ clobbers : asm. clobbers . clone ( ) . into ( ) ,
515
+ volatile : asm. volatile ,
516
+ alignstack : asm. alignstack ,
517
+ dialect : asm. dialect ,
518
+ ctxt : asm. ctxt ,
519
+ } ;
520
+
521
+ let outputs = asm. outputs
522
+ . iter ( )
523
+ . map ( |out| self . lower_expr ( & out. expr ) )
524
+ . collect ( ) ;
525
+
526
+ let inputs = asm. inputs
527
+ . iter ( )
528
+ . map ( |& ( _, ref input) | self . lower_expr ( input) )
529
+ . collect ( ) ;
530
+
531
+ hir:: ExprKind :: InlineAsm ( P ( hir_asm) , outputs, inputs)
532
+ }
533
+
529
534
fn lower_expr_yield ( & mut self , span : Span , opt_expr : Option < & Expr > ) -> hir:: ExprKind {
530
535
match self . generator_kind {
531
536
Some ( hir:: GeneratorKind :: Gen ) => { } ,
0 commit comments