From 044dec4cf555e8c8f54d8de2f285201f4cdc2840 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 8 Nov 2013 22:25:22 -0500 Subject: [PATCH] Fix pretty printer when there are multiple lifetime parameters --- src/libsyntax/print/pprust.rs | 19 +++++++++++++------ ...ns-variance-invariant-use-contravariant.rs | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) 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() { }