about summary refs log tree commit diff
path: root/src/libsyntax/print/pprust.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-03-11 04:27:48 -0700
committerbors <bors@rust-lang.org>2013-03-11 04:27:48 -0700
commit51cdca0bf0d3efc554c1815df9306ea10e881a14 (patch)
tree250354cf3cd8fe9af0de4e0d8434c99a50742c75 /src/libsyntax/print/pprust.rs
parent58618fb8cfd791a930261ff68ae6bc77e0bc4412 (diff)
parent070137ce905d0177e8d112385f1d8dc7b2407006 (diff)
downloadrust-51cdca0bf0d3efc554c1815df9306ea10e881a14.tar.gz
rust-51cdca0bf0d3efc554c1815df9306ea10e881a14.zip
auto merge of #5122 : sanxiyn/rust/vec-match-tail-2, r=nikomatsakis
Incorporated @nikomatsakis's comments from #4748.

Fix #4635.
Diffstat (limited to 'src/libsyntax/print/pprust.rs')
-rw-r--r--src/libsyntax/print/pprust.rs16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs
index 3744b7a8f6c..c81c1c8bd0e 100644
--- a/src/libsyntax/print/pprust.rs
+++ b/src/libsyntax/print/pprust.rs
@@ -1609,13 +1609,19 @@ pub fn print_pat(s: @ps, &&pat: @ast::pat, refutable: bool) {
         word(s.s, ~"..");
         print_expr(s, end);
       }
-      ast::pat_vec(elts, tail) => {
+      ast::pat_vec(before, slice, after) => {
         word(s.s, ~"[");
-        commasep(s, inconsistent, elts, |s, p| print_pat(s, p, refutable));
-        for tail.each |tail| {
-            if vec::len(elts) != 0u { word_space(s, ~","); }
+        do commasep(s, inconsistent, before) |s, p| {
+            print_pat(s, p, refutable);
+        }
+        for slice.each |&p| {
+            if !before.is_empty() { word_space(s, ~","); }
             word(s.s, ~"..");
-            print_pat(s, *tail, refutable);
+            print_pat(s, p, refutable);
+            if !after.is_empty() { word_space(s, ~","); }
+        }
+        do commasep(s, inconsistent, after) |s, p| {
+            print_pat(s, p, refutable);
         }
         word(s.s, ~"]");
       }