]> git.lizzy.rs Git - rust.git/commitdiff
Fix pretty printer when there are multiple lifetime parameters
authorNiko Matsakis <niko@alum.mit.edu>
Sat, 9 Nov 2013 03:25:22 +0000 (22:25 -0500)
committerNiko Matsakis <niko@alum.mit.edu>
Sat, 9 Nov 2013 03:25:22 +0000 (22:25 -0500)
src/libsyntax/print/pprust.rs
src/test/compile-fail/regions-variance-invariant-use-contravariant.rs

index 7b02d036511aa957d608193e710198237072541b..ed8eb4b54271075c289394eb631a8301052dcfd5 100644 (file)
@@ -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, ">")
         }
index 2180964083250076de1ee65a21f20a61fabd65f7..0790c3f956a114b7a356d7fa5351ff0bf0680fa6 100644 (file)
@@ -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() { }