@@ -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 // FIXME: Add rest of the statements
6363 StatementKind :: FakeRead ( _, _) => {
@@ -117,7 +117,7 @@ pub fn pretty_terminator<W: io::Write>(terminator: &TerminatorKind, w: &mut W) -
117117 Ok ( ( ) )
118118 }
119119 ( 1 , false ) => {
120- write ! ( w, " -> {:?}" , successors[ 0 ] ) ?;
120+ write ! ( w, " -> bb {:?}" , successors[ 0 ] ) ?;
121121 Ok ( ( ) )
122122 }
123123 _ => {
@@ -154,9 +154,7 @@ pub fn pretty_terminator_head(terminator: &TerminatorKind) -> String {
154154 Drop { place, .. } => format ! ( " drop(_{:?})" , place. local) ,
155155 Call { func, args, destination, .. } => {
156156 pretty. push_str ( " " ) ;
157- pretty. push_str ( format ! ( "_{} = " , destination. local) . as_str ( ) ) ;
158- pretty. push_str ( & pretty_operand ( func) ) ;
159- pretty. push_str ( "(" ) ;
157+ pretty. push_str ( format ! ( "_{} = {}(" , destination. local, pretty_operand( func) ) . as_str ( ) ) ;
160158 args. iter ( ) . enumerate ( ) . for_each ( |( i, arg) | {
161159 if i > 0 {
162160 pretty. push_str ( ", " ) ;
@@ -171,9 +169,9 @@ pub fn pretty_terminator_head(terminator: &TerminatorKind) -> String {
171169 if !expected {
172170 pretty. push_str ( "!" ) ;
173171 }
174- pretty. push_str ( format ! ( "{} bool)," , & pretty_operand ( cond ) ) . as_str ( ) ) ;
175- pretty . push_str ( & pretty_assert_message ( msg) ) ;
176- pretty . push_str ( ")" ) ;
172+ pretty. push_str (
173+ format ! ( "{} bool),{})" , & pretty_operand ( cond ) , pretty_assert_message( msg) ) . as_str ( ) ,
174+ ) ;
177175 pretty
178176 }
179177 InlineAsm { .. } => todo ! ( ) ,
@@ -297,16 +295,14 @@ pub fn pretty_operand(operand: &Operand) -> String {
297295 let mut pretty = String :: new ( ) ;
298296 match operand {
299297 Operand :: Copy ( copy) => {
300- pretty. push_str ( "" ) ;
301- pretty. push_str ( format ! ( "{}" , copy. local) . as_str ( ) ) ;
298+ pretty. push_str ( format ! ( "_{}" , copy. local) . as_str ( ) ) ;
302299 }
303300 Operand :: Move ( mv) => {
304- pretty. push_str ( "move " ) ;
305- pretty. push_str ( format ! ( "_{}" , mv. local) . as_str ( ) ) ;
301+ pretty. push_str ( format ! ( "move _{}" , mv. local) . as_str ( ) ) ;
306302 }
307303 Operand :: Constant ( cnst) => {
308- pretty. push_str ( "const " ) ;
309- pretty . push_str ( with ( |cx| cx. const_literal ( & cnst. literal ) ) . as_str ( ) ) ;
304+ pretty
305+ . push_str ( format ! ( "const {}" , with( |cx| cx. const_literal( & cnst. literal) ) ) . as_str ( ) ) ;
310306 }
311307 }
312308 pretty
@@ -316,14 +312,11 @@ pub fn pretty_rvalue(rval: &Rvalue) -> String {
316312 let mut pretty = String :: new ( ) ;
317313 match rval {
318314 Rvalue :: AddressOf ( muta, addr) => {
319- pretty. push_str ( "&raw " ) ;
320- pretty. push_str ( & ret_mutability ( muta) ) ;
321- pretty. push_str ( format ! ( "(*_{})" , addr. local) . as_str ( ) ) ;
315+ pretty. push_str ( format ! ( "&raw {}(*_{})" , & ret_mutability( muta) , addr. local) . as_str ( ) ) ;
322316 }
323317 Rvalue :: Aggregate ( aggregatekind, operands) => {
324318 // FIXME: Add pretty_aggregate function that returns a pretty string
325- pretty. push_str ( format ! ( "{:#?}" , aggregatekind) . as_str ( ) ) ;
326- pretty. push_str ( "(" ) ;
319+ pretty. push_str ( format ! ( "{:#?} (" , aggregatekind) . as_str ( ) ) ;
327320 operands. iter ( ) . enumerate ( ) . for_each ( |( i, op) | {
328321 pretty. push_str ( & pretty_operand ( op) ) ;
329322 if i != operands. len ( ) - 1 {
@@ -333,37 +326,27 @@ pub fn pretty_rvalue(rval: &Rvalue) -> String {
333326 pretty. push_str ( ")" ) ;
334327 }
335328 Rvalue :: BinaryOp ( bin, op1, op2) => {
336- pretty. push_str ( format ! ( "{:#?}" , bin) . as_str ( ) ) ;
337- pretty. push_str ( "(" ) ;
338- pretty. push_str ( format ! ( "_{}" , & pretty_operand( op1) ) . as_str ( ) ) ;
339- pretty. push_str ( ", " ) ;
340- pretty. push_str ( format ! ( "{}" , & pretty_operand( op2) ) . as_str ( ) ) ;
341- pretty. push_str ( ")" ) ;
329+ pretty. push_str (
330+ format ! ( "{:#?}({}, {})" , bin, & pretty_operand( op1) , pretty_operand( op2) ) . as_str ( ) ,
331+ ) ;
342332 }
343333 Rvalue :: Cast ( _, op, ty) => {
344- pretty. push_str ( & pretty_operand ( op) ) ;
345- pretty. push_str ( " as " ) ;
346- pretty. push_str ( & pretty_ty ( ty. kind ( ) ) ) ;
334+ pretty. push_str ( format ! ( "{} as {}" , pretty_operand( op) , pretty_ty( ty. kind( ) ) ) . as_str ( ) ) ;
347335 }
348336 Rvalue :: CheckedBinaryOp ( bin, op1, op2) => {
349- pretty. push_str ( format ! ( "Checked{:#?}" , bin) . as_str ( ) ) ;
350- pretty. push_str ( "(" ) ;
351- pretty. push_str ( format ! ( "_{}" , & pretty_operand( op1) ) . as_str ( ) ) ;
352- pretty. push_str ( ", " ) ;
353- pretty. push_str ( format ! ( "{}" , & pretty_operand( op2) ) . as_str ( ) ) ;
354- pretty. push_str ( ")" ) ;
337+ pretty. push_str (
338+ format ! ( "Checked{:#?}({}, {})" , bin, & pretty_operand( op1) , pretty_operand( op2) )
339+ . as_str ( ) ,
340+ ) ;
355341 }
356342 Rvalue :: CopyForDeref ( deref) => {
357- pretty. push_str ( "CopyForDeref" ) ;
358- pretty. push_str ( format ! ( "{}" , deref. local) . as_str ( ) ) ;
343+ pretty. push_str ( format ! ( "CopyForDeref{}" , deref. local) . as_str ( ) ) ;
359344 }
360345 Rvalue :: Discriminant ( place) => {
361- pretty. push_str ( "discriminant" ) ;
362- pretty. push_str ( format ! ( "{}" , place. local) . as_str ( ) ) ;
346+ pretty. push_str ( format ! ( "discriminant{}" , place. local) . as_str ( ) ) ;
363347 }
364348 Rvalue :: Len ( len) => {
365- pretty. push_str ( "len" ) ;
366- pretty. push_str ( format ! ( "{}" , len. local) . as_str ( ) ) ;
349+ pretty. push_str ( format ! ( "len{}" , len. local) . as_str ( ) ) ;
367350 }
368351 Rvalue :: Ref ( _, borrowkind, place) => {
369352 match borrowkind {
@@ -374,24 +357,19 @@ pub fn pretty_rvalue(rval: &Rvalue) -> String {
374357 pretty. push_str ( format ! ( "{}" , place. local) . as_str ( ) ) ;
375358 }
376359 Rvalue :: Repeat ( op, cnst) => {
377- pretty. push_str ( & pretty_operand ( op ) ) ;
378- pretty . push_str ( " " ) ;
379- pretty . push_str ( & pretty_ty ( cnst . ty ( ) . kind ( ) ) ) ;
360+ pretty. push_str (
361+ & format ! ( "{} \" \" {}" , & pretty_operand ( op ) , pretty_ty ( cnst . ty ( ) . kind ( ) ) ) . as_str ( ) ,
362+ ) ;
380363 }
381364 Rvalue :: ShallowInitBox ( _, _) => ( ) ,
382365 Rvalue :: ThreadLocalRef ( item) => {
383- pretty. push_str ( "thread_local_ref" ) ;
384- pretty. push_str ( format ! ( "{:#?}" , item) . as_str ( ) ) ;
366+ pretty. push_str ( format ! ( "thread_local_ref{:#?}" , item) . as_str ( ) ) ;
385367 }
386368 Rvalue :: NullaryOp ( nul, ty) => {
387- pretty. push_str ( format ! ( "{:#?}" , nul) . as_str ( ) ) ;
388- pretty. push_str ( & pretty_ty ( ty. kind ( ) ) ) ;
389- pretty. push_str ( " " ) ;
369+ pretty. push_str ( format ! ( "{:#?} {} \" \" " , nul, pretty_ty( ty. kind( ) ) ) . as_str ( ) ) ;
390370 }
391371 Rvalue :: UnaryOp ( un, op) => {
392- pretty. push_str ( & pretty_operand ( op) ) ;
393- pretty. push_str ( " " ) ;
394- pretty. push_str ( format ! ( "{:#?}" , un) . as_str ( ) ) ;
372+ pretty. push_str ( format ! ( "{} \" \" {:#?}" , pretty_operand( op) , un) . as_str ( ) ) ;
395373 }
396374 Rvalue :: Use ( op) => pretty. push_str ( & pretty_operand ( op) ) ,
397375 }
@@ -458,8 +436,7 @@ pub fn pretty_ty(ty: TyKind) -> String {
458436 DynKind :: Dyn => pretty. push_str ( "dyn " ) ,
459437 DynKind :: DynStar => pretty. push_str ( "dyn* " ) ,
460438 }
461- pretty. push_str ( format ! ( "{:#?}" , data) . as_str ( ) ) ;
462- pretty. push_str ( format ! ( " + {:#?} )" , region) . as_str ( ) ) ;
439+ pretty. push_str ( format ! ( "{:#?} + {:#?}" , data, region) . as_str ( ) ) ;
463440 pretty
464441 }
465442 RigidTy :: Never => "!" . to_string ( ) ,
0 commit comments