diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 7b02d036511a..ed8eb4b54271 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 218096408325..0790c3f956a1 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() { }