diff options
| author | Kevin Atkinson <kevina@cs.utah.edu> | 2012-01-15 19:56:20 -0700 |
|---|---|---|
| committer | Marijn Haverbeke <marijnh@gmail.com> | 2012-01-16 11:19:32 +0100 |
| commit | 2d36a71aee17b6dad04a184541cebbb8e3901a5a (patch) | |
| tree | b2cd21074ce66517381ff01b344be4af9ade566b | |
| parent | 13b9a16a7b98f2308d7fae01ad122a3f94032c63 (diff) | |
| download | rust-2d36a71aee17b6dad04a184541cebbb8e3901a5a.tar.gz rust-2d36a71aee17b6dad04a184541cebbb8e3901a5a.zip | |
Update pretty printer to print out disr. values.
Partly fixes issue #1510. "rustc --pretty=typed" fails.
| -rw-r--r-- | src/comp/syntax/print/pprust.rs | 8 | ||||
| -rw-r--r-- | src/test/run-pass/enum-disr-val-pretty.rs | 16 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/comp/syntax/print/pprust.rs b/src/comp/syntax/print/pprust.rs index e0c1acc4fcc..38449d6e255 100644 --- a/src/comp/syntax/print/pprust.rs +++ b/src/comp/syntax/print/pprust.rs @@ -428,6 +428,14 @@ fn print_item(s: ps, &&item: @ast::item) { commasep(s, consistent, v.node.args, print_variant_arg); pclose(s); } + alt v.node.disr_expr { + some(expr) { + nbsp(s); + word_nbsp(s, "="); + print_expr(s, expr); + } + _ {} + } word(s.s, ";"); maybe_print_trailing_comment(s, v.span, none::<uint>); } diff --git a/src/test/run-pass/enum-disr-val-pretty.rs b/src/test/run-pass/enum-disr-val-pretty.rs new file mode 100644 index 00000000000..68226f63a2f --- /dev/null +++ b/src/test/run-pass/enum-disr-val-pretty.rs @@ -0,0 +1,16 @@ +// pp-exact + +enum color { red = 1; green; blue; imaginary = -1; } + +fn main() { + test_color(red, 1, "red"); + test_color(green, 2, "green"); + test_color(blue, 3, "blue"); + test_color(imaginary, -1, "imaginary"); +} + +fn test_color(color: color, val: int, name: str) unsafe{ + assert (color as int == val); + assert (color as float == val as float); +} + |
