@@ -777,6 +777,12 @@ pub enum StatementKind<'tcx> {
777777 /// End the current live range for the storage of the local.
778778 StorageDead ( Lvalue < ' tcx > ) ,
779779
780+ InlineAsm {
781+ asm : InlineAsm ,
782+ outputs : Vec < Lvalue < ' tcx > > ,
783+ inputs : Vec < Operand < ' tcx > >
784+ } ,
785+
780786 /// No-op. Useful for deleting instructions without affecting statement indices.
781787 Nop ,
782788}
@@ -790,7 +796,10 @@ impl<'tcx> Debug for Statement<'tcx> {
790796 StorageDead ( ref lv) => write ! ( fmt, "StorageDead({:?})" , lv) ,
791797 SetDiscriminant { lvalue : ref lv, variant_index : index} => {
792798 write ! ( fmt, "discriminant({:?}) = {:?}" , lv, index)
793- }
799+ } ,
800+ InlineAsm { ref asm, ref outputs, ref inputs } => {
801+ write ! ( fmt, "asm!({:?} : {:?} : {:?})" , asm, outputs, inputs)
802+ } ,
794803 Nop => write ! ( fmt, "nop" ) ,
795804 }
796805 }
@@ -1004,12 +1013,6 @@ pub enum Rvalue<'tcx> {
10041013 /// that `Foo` has a destructor. These rvalues can be optimized
10051014 /// away after type-checking and before lowering.
10061015 Aggregate ( AggregateKind < ' tcx > , Vec < Operand < ' tcx > > ) ,
1007-
1008- InlineAsm {
1009- asm : InlineAsm ,
1010- outputs : Vec < Lvalue < ' tcx > > ,
1011- inputs : Vec < Operand < ' tcx > >
1012- }
10131016}
10141017
10151018#[ derive( Clone , Copy , Debug , PartialEq , Eq , RustcEncodable , RustcDecodable ) ]
@@ -1111,10 +1114,6 @@ impl<'tcx> Debug for Rvalue<'tcx> {
11111114 UnaryOp ( ref op, ref a) => write ! ( fmt, "{:?}({:?})" , op, a) ,
11121115 Discriminant ( ref lval) => write ! ( fmt, "discriminant({:?})" , lval) ,
11131116 Box ( ref t) => write ! ( fmt, "Box({:?})" , t) ,
1114- InlineAsm { ref asm, ref outputs, ref inputs } => {
1115- write ! ( fmt, "asm!({:?} : {:?} : {:?})" , asm, outputs, inputs)
1116- }
1117-
11181117 Ref ( _, borrow_kind, ref lv) => {
11191118 let kind_str = match borrow_kind {
11201119 BorrowKind :: Shared => "" ,
0 commit comments