@@ -3,6 +3,8 @@ use crate::mir::{Operand, Rvalue, StatementKind};
33use  crate :: ty:: { DynKind ,  FloatTy ,  IntTy ,  RigidTy ,  TyKind ,  UintTy } ; 
44use  crate :: { with,  Body ,  CrateItem ,  Mutability } ; 
55
6+ use  super :: BorrowKind ; 
7+ 
68pub  fn  function_name ( item :  CrateItem )  -> String  { 
79    let  mut  pretty_name = String :: new ( ) ; 
810    let  body = item. body ( ) ; 
@@ -36,7 +38,6 @@ pub fn function_body(body: &Body) -> String {
3638        pretty_body. push_str ( format ! ( "{}" ,  pretty_ty( local. ty. kind( ) ) ) . as_str ( ) ) ; 
3739        pretty_body. push_str ( ";\n " ) ; 
3840    } ) ; 
39-     pretty_body. push_str ( "}" ) ; 
4041    pretty_body
4142} 
4243
@@ -98,6 +99,7 @@ pub fn pretty_rvalue(rval: &Rvalue) -> String {
9899            pretty. push_str ( format ! ( "(*_{})" ,  addr. local) . as_str ( ) ) ; 
99100        } 
100101        Rvalue :: Aggregate ( aggregatekind,  operands)  => { 
102+             // FIXME: Add pretty_aggregate function that returns a pretty string 
101103            pretty. push_str ( format ! ( "{:#?}" ,  aggregatekind) . as_str ( ) ) ; 
102104            pretty. push_str ( "(" ) ; 
103105            operands. iter ( ) . enumerate ( ) . for_each ( |( i,  op) | { 
@@ -108,24 +110,26 @@ pub fn pretty_rvalue(rval: &Rvalue) -> String {
108110            } ) ; 
109111            pretty. push_str ( ")" ) ; 
110112        } 
111-         Rvalue :: BinaryOp ( bin,  op,  op2)  => { 
112-             pretty. push_str ( & pretty_operand ( op) ) ; 
113-             pretty. push_str ( " " ) ; 
113+         Rvalue :: BinaryOp ( bin,  op1,  op2)  => { 
114114            pretty. push_str ( format ! ( "{:#?}" ,  bin) . as_str ( ) ) ; 
115-             pretty. push_str ( " " ) ; 
116-             pretty. push_str ( & pretty_operand ( op2) ) ; 
115+             pretty. push_str ( "(" ) ; 
116+             pretty. push_str ( format ! ( "_{}" ,  & pretty_operand( op1) ) . as_str ( ) ) ; 
117+             pretty. push_str ( ", " ) ; 
118+             pretty. push_str ( format ! ( "{}" ,  & pretty_operand( op2) ) . as_str ( ) ) ; 
119+             pretty. push_str ( ")" ) ; 
117120        } 
118121        Rvalue :: Cast ( _,  op,  ty)  => { 
119122            pretty. push_str ( & pretty_operand ( op) ) ; 
120123            pretty. push_str ( " as " ) ; 
121124            pretty. push_str ( & pretty_ty ( ty. kind ( ) ) ) ; 
122125        } 
123126        Rvalue :: CheckedBinaryOp ( bin,  op1,  op2)  => { 
124-             pretty. push_str ( & pretty_operand ( op1) ) ; 
125-             pretty. push_str ( " " ) ; 
126-             pretty. push_str ( format ! ( "{:#?}" ,  bin) . as_str ( ) ) ; 
127-             pretty. push_str ( " " ) ; 
128-             pretty. push_str ( & pretty_operand ( op2) ) ; 
127+             pretty. push_str ( format ! ( "Checked{:#?}" ,  bin) . as_str ( ) ) ; 
128+             pretty. push_str ( "(" ) ; 
129+             pretty. push_str ( format ! ( "_{}" ,  & pretty_operand( op1) ) . as_str ( ) ) ; 
130+             pretty. push_str ( ", " ) ; 
131+             pretty. push_str ( format ! ( "{}" ,  & pretty_operand( op2) ) . as_str ( ) ) ; 
132+             pretty. push_str ( ")" ) ; 
129133        } 
130134        Rvalue :: CopyForDeref ( deref)  => { 
131135            pretty. push_str ( "CopyForDeref" ) ; 
@@ -140,8 +144,11 @@ pub fn pretty_rvalue(rval: &Rvalue) -> String {
140144            pretty. push_str ( format ! ( "{}" ,  len. local) . as_str ( ) ) ; 
141145        } 
142146        Rvalue :: Ref ( _,  borrowkind,  place)  => { 
143-             pretty. push_str ( "ref" ) ; 
144-             pretty. push_str ( format ! ( "{:#?}" ,  borrowkind) . as_str ( ) ) ; 
147+             match  borrowkind { 
148+                 BorrowKind :: Shared  => pretty. push_str ( "&" ) , 
149+                 BorrowKind :: Fake  => pretty. push_str ( "&fake " ) , 
150+                 BorrowKind :: Mut  {  .. }  => pretty. push_str ( "&mut " ) , 
151+             } 
145152            pretty. push_str ( format ! ( "{}" ,  place. local) . as_str ( ) ) ; 
146153        } 
147154        Rvalue :: Repeat ( op,  cnst)  => { 
@@ -196,7 +203,7 @@ pub fn pretty_ty(ty: TyKind) -> String {
196203                FloatTy :: F64  => "f64" . to_string ( ) , 
197204            } , 
198205            RigidTy :: Adt ( def,  _)  => { 
199-                 format ! ( "{:#? }" ,  with( |cx| cx. def_ty ( def. 0 ) ) ) 
206+                 format ! ( "{}" ,  with( |cx| cx. adt_literal ( & def) ) ) 
200207            } 
201208            RigidTy :: Str  => "str" . to_string ( ) , 
202209            RigidTy :: Array ( ty,  len)  => { 
0 commit comments