diff options
| author | Daniel Patterson <dbp@riseup.net> | 2012-08-13 21:13:41 -0400 |
|---|---|---|
| committer | Daniel Patterson <dbp@riseup.net> | 2012-08-14 09:40:56 -0400 |
| commit | 62a9e16cb20b070dba25fed585a14f9e3a62ac3b (patch) | |
| tree | 7a50a702bcfcfc2ed9eb4e39af84ad7569508de0 /src/libsyntax | |
| parent | 8271b3f0c89f052612c5bb8262f399995121e061 (diff) | |
| download | rust-62a9e16cb20b070dba25fed585a14f9e3a62ac3b.tar.gz rust-62a9e16cb20b070dba25fed585a14f9e3a62ac3b.zip | |
syntax: fixing pretty printing of brackets in match arms
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index b42c2dbdcc6..f4b6b74d1b5 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -838,6 +838,11 @@ fn print_block_unclosed(s: ps, blk: ast::blk) { false); } +fn print_block_unclosed_indent(s: ps, blk: ast::blk, indented: uint) { + print_possibly_embedded_block_(s, blk, block_normal, indented, ~[], + false); +} + fn print_block_with_attrs(s: ps, blk: ast::blk, attrs: ~[ast::attribute]) { print_possibly_embedded_block_(s, blk, block_normal, indent_unit, attrs, true); @@ -1178,8 +1183,16 @@ fn print_expr(s: ps, &&expr: @ast::expr) { assert arm.body.node.rules == ast::default_blk; match arm.body.node.expr { some(expr) => { - end(s); // close the ibox for the pattern - print_expr(s, expr); + match expr.node { + ast::expr_block(blk) => { + // the block will close the pattern's ibox + print_block_unclosed_indent(s, blk, alt_indent_unit); + } + _ => { + end(s); // close the ibox for the pattern + print_expr(s, expr); + } + } if !expr_is_simple_block(expr) && i < len - 1 { word(s.s, ~","); |
