about summary refs log tree commit diff
diff options
context:
space:
mode:
-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() { }