@@ -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