@@ -12,35 +12,36 @@ use super::BorrowKind;
1212pub fn function_name ( item : CrateItem ) -> String {
1313 let mut pretty_name = String :: new ( ) ;
1414 let body = item. body ( ) ;
15- pretty_name. push_str ( "fn " ) ;
16- pretty_name. push_str ( item. name ( ) . as_str ( ) ) ;
15+ pretty_name. push_str ( format ! ( "fn {}" , item. name( ) ) . as_str ( ) ) ;
1716 if body. arg_locals ( ) . is_empty ( ) {
1817 pretty_name. push_str ( "()" ) ;
1918 } else {
2019 pretty_name. push_str ( "(" ) ;
2120 }
2221 body. arg_locals ( ) . iter ( ) . enumerate ( ) . for_each ( |( index, local) | {
23- pretty_name. push_str ( format ! ( "_{}: " , index) . as_str ( ) ) ;
24- pretty_name. push_str ( & pretty_ty ( local. ty . kind ( ) ) ) ;
22+ pretty_name. push_str ( format ! ( "_{}: {}" , index, pretty_ty( local. ty. kind( ) ) ) . as_str ( ) ) ;
2523 } ) ;
2624 if !body. arg_locals ( ) . is_empty ( ) {
2725 pretty_name. push_str ( ")" ) ;
2826 }
2927 let return_local = body. ret_local ( ) ;
30- pretty_name. push_str ( " -> " ) ;
31- pretty_name. push_str ( & pretty_ty ( return_local. ty . kind ( ) ) ) ;
32- pretty_name. push_str ( " {" ) ;
28+ pretty_name. push_str ( format ! ( " -> {} {{" , pretty_ty( return_local. ty. kind( ) ) ) . as_str ( ) ) ;
3329 pretty_name
3430}
3531
3632pub fn function_body ( body : & Body ) -> String {
3733 let mut pretty_body = String :: new ( ) ;
3834 body. inner_locals ( ) . iter ( ) . enumerate ( ) . for_each ( |( index, local) | {
3935 pretty_body. push_str ( " " ) ;
40- pretty_body. push_str ( format ! ( "let {}" , ret_mutability( & local. mutability) ) . as_str ( ) ) ;
41- pretty_body. push_str ( format ! ( "_{}: " , index) . as_str ( ) ) ;
42- pretty_body. push_str ( format ! ( "{}" , pretty_ty( local. ty. kind( ) ) ) . as_str ( ) ) ;
43- pretty_body. push_str ( ";\n " ) ;
36+ pretty_body. push_str (
37+ format ! (
38+ "let {}_{}: {};\n " ,
39+ ret_mutability( & local. mutability) ,
40+ index,
41+ pretty_ty( local. ty. kind( ) )
42+ )
43+ . as_str ( ) ,
44+ ) ;
4445 } ) ;
4546 pretty_body
4647}
@@ -56,8 +57,7 @@ pub fn pretty_statement(statement: &StatementKind) -> String {
5657 let mut pretty = String :: new ( ) ;
5758 match statement {
5859 StatementKind :: Assign ( place, rval) => {
59- pretty. push_str ( format ! ( " _{} = " , place. local) . as_str ( ) ) ;
60- pretty. push_str ( format ! ( "{}" , & pretty_rvalue( rval) ) . as_str ( ) ) ;
60+ pretty. push_str ( format ! ( " _{} = {}" , place. local, pretty_rvalue( rval) ) . as_str ( ) ) ;
6161 }
6262 StatementKind :: FakeRead ( _, _) => todo ! ( ) ,
6363 StatementKind :: SetDiscriminant { .. } => todo ! ( ) ,
@@ -100,7 +100,7 @@ pub fn pretty_terminator<W: io::Write>(terminator: &TerminatorKind, w: &mut W) -
100100 Ok ( ( ) )
101101 }
102102 ( 1 , false ) => {
103- write ! ( w, " -> {:?}" , successors[ 0 ] ) ?;
103+ write ! ( w, " -> bb {:?}" , successors[ 0 ] ) ?;
104104 Ok ( ( ) )
105105 }
106106 _ => {
@@ -137,9 +137,7 @@ pub fn pretty_terminator_head(terminator: &TerminatorKind) -> String {
137137 Drop { place, .. } => format ! ( " drop(_{:?})" , place. local) ,
138138 Call { func, args, destination, .. } => {
139139 pretty. push_str ( " " ) ;
140- pretty. push_str ( format ! ( "_{} = " , destination. local) . as_str ( ) ) ;
141- pretty. push_str ( & pretty_operand ( func) ) ;
142- pretty. push_str ( "(" ) ;
140+ pretty. push_str ( format ! ( "_{} = {}(" , destination. local, pretty_operand( func) ) . as_str ( ) ) ;
143141 args. iter ( ) . enumerate ( ) . for_each ( |( i, arg) | {
144142 if i > 0 {
145143 pretty. push_str ( ", " ) ;
@@ -154,9 +152,9 @@ pub fn pretty_terminator_head(terminator: &TerminatorKind) -> String {
154152 if !expected {
155153 pretty. push_str ( "!" ) ;
156154 }
157- pretty. push_str ( format ! ( "{} bool)," , & pretty_operand ( cond ) ) . as_str ( ) ) ;
158- pretty . push_str ( & pretty_assert_message ( msg) ) ;
159- pretty . push_str ( ")" ) ;
155+ pretty. push_str (
156+ format ! ( "{} bool),{})" , & pretty_operand ( cond ) , pretty_assert_message( msg) ) . as_str ( ) ,
157+ ) ;
160158 pretty
161159 }
162160 InlineAsm { .. } => todo ! ( ) ,
@@ -281,16 +279,14 @@ pub fn pretty_operand(operand: &Operand) -> String {
281279 let mut pretty = String :: new ( ) ;
282280 match operand {
283281 Operand :: Copy ( copy) => {
284- pretty. push_str ( "" ) ;
285- pretty. push_str ( format ! ( "{}" , copy. local) . as_str ( ) ) ;
282+ pretty. push_str ( format ! ( "_{}" , copy. local) . as_str ( ) ) ;
286283 }
287284 Operand :: Move ( mv) => {
288- pretty. push_str ( "move " ) ;
289- pretty. push_str ( format ! ( "_{}" , mv. local) . as_str ( ) ) ;
285+ pretty. push_str ( format ! ( "move _{}" , mv. local) . as_str ( ) ) ;
290286 }
291287 Operand :: Constant ( cnst) => {
292- pretty. push_str ( "const " ) ;
293- pretty . push_str ( with ( |cx| cx. const_literal ( & cnst. literal ) ) . as_str ( ) ) ;
288+ pretty
289+ . push_str ( format ! ( "const {}" , with( |cx| cx. const_literal( & cnst. literal) ) ) . as_str ( ) ) ;
294290 }
295291 }
296292 pretty
@@ -300,14 +296,11 @@ pub fn pretty_rvalue(rval: &Rvalue) -> String {
300296 let mut pretty = String :: new ( ) ;
301297 match rval {
302298 Rvalue :: AddressOf ( muta, addr) => {
303- pretty. push_str ( "&raw " ) ;
304- pretty. push_str ( & ret_mutability ( muta) ) ;
305- pretty. push_str ( format ! ( "(*_{})" , addr. local) . as_str ( ) ) ;
299+ pretty. push_str ( format ! ( "&raw {}(*_{})" , & ret_mutability( muta) , addr. local) . as_str ( ) ) ;
306300 }
307301 Rvalue :: Aggregate ( aggregatekind, operands) => {
308302 // FIXME: Add pretty_aggregate function that returns a pretty string
309- pretty. push_str ( format ! ( "{:#?}" , aggregatekind) . as_str ( ) ) ;
310- pretty. push_str ( "(" ) ;
303+ pretty. push_str ( format ! ( "{:#?} (" , aggregatekind) . as_str ( ) ) ;
311304 operands. iter ( ) . enumerate ( ) . for_each ( |( i, op) | {
312305 pretty. push_str ( & pretty_operand ( op) ) ;
313306 if i != operands. len ( ) - 1 {
@@ -317,37 +310,27 @@ pub fn pretty_rvalue(rval: &Rvalue) -> String {
317310 pretty. push_str ( ")" ) ;
318311 }
319312 Rvalue :: BinaryOp ( bin, op1, op2) => {
320- pretty. push_str ( format ! ( "{:#?}" , bin) . as_str ( ) ) ;
321- pretty. push_str ( "(" ) ;
322- pretty. push_str ( format ! ( "_{}" , & pretty_operand( op1) ) . as_str ( ) ) ;
323- pretty. push_str ( ", " ) ;
324- pretty. push_str ( format ! ( "{}" , & pretty_operand( op2) ) . as_str ( ) ) ;
325- pretty. push_str ( ")" ) ;
313+ pretty. push_str (
314+ format ! ( "{:#?}({}, {})" , bin, & pretty_operand( op1) , pretty_operand( op2) ) . as_str ( ) ,
315+ ) ;
326316 }
327317 Rvalue :: Cast ( _, op, ty) => {
328- pretty. push_str ( & pretty_operand ( op) ) ;
329- pretty. push_str ( " as " ) ;
330- pretty. push_str ( & pretty_ty ( ty. kind ( ) ) ) ;
318+ pretty. push_str ( format ! ( "{} as {}" , pretty_operand( op) , pretty_ty( ty. kind( ) ) ) . as_str ( ) ) ;
331319 }
332320 Rvalue :: CheckedBinaryOp ( bin, op1, op2) => {
333- pretty. push_str ( format ! ( "Checked{:#?}" , bin) . as_str ( ) ) ;
334- pretty. push_str ( "(" ) ;
335- pretty. push_str ( format ! ( "_{}" , & pretty_operand( op1) ) . as_str ( ) ) ;
336- pretty. push_str ( ", " ) ;
337- pretty. push_str ( format ! ( "{}" , & pretty_operand( op2) ) . as_str ( ) ) ;
338- pretty. push_str ( ")" ) ;
321+ pretty. push_str (
322+ format ! ( "Checked{:#?}({}, {})" , bin, & pretty_operand( op1) , pretty_operand( op2) )
323+ . as_str ( ) ,
324+ ) ;
339325 }
340326 Rvalue :: CopyForDeref ( deref) => {
341- pretty. push_str ( "CopyForDeref" ) ;
342- pretty. push_str ( format ! ( "{}" , deref. local) . as_str ( ) ) ;
327+ pretty. push_str ( format ! ( "CopyForDeref{}" , deref. local) . as_str ( ) ) ;
343328 }
344329 Rvalue :: Discriminant ( place) => {
345- pretty. push_str ( "discriminant" ) ;
346- pretty. push_str ( format ! ( "{}" , place. local) . as_str ( ) ) ;
330+ pretty. push_str ( format ! ( "discriminant{}" , place. local) . as_str ( ) ) ;
347331 }
348332 Rvalue :: Len ( len) => {
349- pretty. push_str ( "len" ) ;
350- pretty. push_str ( format ! ( "{}" , len. local) . as_str ( ) ) ;
333+ pretty. push_str ( format ! ( "len{}" , len. local) . as_str ( ) ) ;
351334 }
352335 Rvalue :: Ref ( _, borrowkind, place) => {
353336 match borrowkind {
@@ -358,24 +341,19 @@ pub fn pretty_rvalue(rval: &Rvalue) -> String {
358341 pretty. push_str ( format ! ( "{}" , place. local) . as_str ( ) ) ;
359342 }
360343 Rvalue :: Repeat ( op, cnst) => {
361- pretty. push_str ( & pretty_operand ( op ) ) ;
362- pretty . push_str ( " " ) ;
363- pretty . push_str ( & pretty_ty ( cnst . ty ( ) . kind ( ) ) ) ;
344+ pretty. push_str (
345+ & format ! ( "{} \" \" {}" , & pretty_operand ( op ) , pretty_ty ( cnst . ty ( ) . kind ( ) ) ) . as_str ( ) ,
346+ ) ;
364347 }
365348 Rvalue :: ShallowInitBox ( _, _) => todo ! ( ) ,
366349 Rvalue :: ThreadLocalRef ( item) => {
367- pretty. push_str ( "thread_local_ref" ) ;
368- pretty. push_str ( format ! ( "{:#?}" , item) . as_str ( ) ) ;
350+ pretty. push_str ( format ! ( "thread_local_ref{:#?}" , item) . as_str ( ) ) ;
369351 }
370352 Rvalue :: NullaryOp ( nul, ty) => {
371- pretty. push_str ( format ! ( "{:#?}" , nul) . as_str ( ) ) ;
372- pretty. push_str ( & pretty_ty ( ty. kind ( ) ) ) ;
373- pretty. push_str ( " " ) ;
353+ pretty. push_str ( format ! ( "{:#?} {} \" \" " , nul, pretty_ty( ty. kind( ) ) ) . as_str ( ) ) ;
374354 }
375355 Rvalue :: UnaryOp ( un, op) => {
376- pretty. push_str ( & pretty_operand ( op) ) ;
377- pretty. push_str ( " " ) ;
378- pretty. push_str ( format ! ( "{:#?}" , un) . as_str ( ) ) ;
356+ pretty. push_str ( format ! ( "{} \" \" {:#?}" , pretty_operand( op) , un) . as_str ( ) ) ;
379357 }
380358 Rvalue :: Use ( op) => pretty. push_str ( & pretty_operand ( op) ) ,
381359 }
@@ -442,8 +420,7 @@ pub fn pretty_ty(ty: TyKind) -> String {
442420 DynKind :: Dyn => pretty. push_str ( "dyn " ) ,
443421 DynKind :: DynStar => pretty. push_str ( "dyn* " ) ,
444422 }
445- pretty. push_str ( format ! ( "{:#?}" , data) . as_str ( ) ) ;
446- pretty. push_str ( format ! ( " + {:#?} )" , region) . as_str ( ) ) ;
423+ pretty. push_str ( format ! ( "{:#?} + {:#?}" , data, region) . as_str ( ) ) ;
447424 pretty
448425 }
449426 RigidTy :: Never => "!" . to_string ( ) ,
0 commit comments