diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index e8e1e1dbb8c12..9a3e10e5aa104 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -2254,15 +2254,17 @@ impl<'a> State<'a> { } pub fn print_pats(&mut self, pats: &[P]) -> io::Result<()> { - let mut first = true; - for ref p in pats { - if first { - first = false; - } else { - try!(space(&mut self.s)); - try!(self.word_space("|")); + match pats { + [] => {}, + [ref p, ref ps..] => { + try!(self.print_pat(&*p)); + + for p in *ps { + try!(space(&mut self.s)); + try!(self.word_space("|")); + try!(self.print_pat(&*p)); + } } - try!(self.print_pat(&**p)); } Ok(()) }