about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2013-11-08 22:25:22 -0500
committerNiko Matsakis <niko@alum.mit.edu>2013-11-08 22:25:22 -0500
commit044dec4cf555e8c8f54d8de2f285201f4cdc2840 (patch)
treebde9e1e6dc073b67abccdf463fd42fc80ff186f4 /src
parent98f79735c3f76c9e1a263a4a37104bda51c5dd5f (diff)
downloadrust-044dec4cf555e8c8f54d8de2f285201f4cdc2840.tar.gz
rust-044dec4cf555e8c8f54d8de2f285201f4cdc2840.zip
Fix pretty printer when there are multiple lifetime parameters
Diffstat (limited to 'src')
-rw-r--r--src/libsyntax/print/pprust.rs19
-rw-r--r--src/test/compile-fail/regions-variance-invariant-use-contravariant.rs2
2 files changed, 14 insertions, 7 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs
index 7b02d036511..ed8eb4b5427 100644
--- a/src/libsyntax/print/pprust.rs
+++ b/src/libsyntax/print/pprust.rs
@@ -1572,17 +1572,24 @@ fn print_path_(s: @ps,
             }
             word(s.s, "<");
 
+            let mut comma = false;
             for lifetime in segment.lifetimes.iter() {
-                print_lifetime(s, lifetime);
-                if !segment.types.is_empty() {
+                if comma {
                     word_space(s, ",")
                 }
+                print_lifetime(s, lifetime);
+                comma = true;
             }
 
-            commasep(s,
-                     inconsistent,
-                     segment.types.map_to_vec(|t| (*t).clone()),
-                     print_type);
+            if !segment.types.is_empty() {
+                if comma {
+                    word_space(s, ",")
+                }
+                commasep(s,
+                         inconsistent,
+                         segment.types.map_to_vec(|t| (*t).clone()),
+                         print_type);
+            }
 
             word(s.s, ">")
         }
diff --git a/src/test/compile-fail/regions-variance-invariant-use-contravariant.rs b/src/test/compile-fail/regions-variance-invariant-use-contravariant.rs
index 21809640832..0790c3f956a 100644
--- a/src/test/compile-fail/regions-variance-invariant-use-contravariant.rs
+++ b/src/test/compile-fail/regions-variance-invariant-use-contravariant.rs
@@ -27,7 +27,7 @@ fn use_<'short,'long>(c: Invariant<'long>,
     // 'short <= 'long, this would be true if the Invariant type were
     // contravariant with respect to its parameter 'a.
 
-    let _: Invariant<'short> = c; //~ ERROR lifetime mistach
+    let _: Invariant<'short> = c; //~ ERROR mismatched types
 }
 
 fn main() { }