From c4640a2a6933f707a998161ccbbd8c7d6f8eb3dd Mon Sep 17 00:00:00 2001 From: Nick Cameron Date: Wed, 24 Dec 2014 22:34:57 +1300 Subject: Changes to RustDoc --- src/libsyntax/print/pprust.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/libsyntax/print') diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 7713a0f23d1..1d3dc42cf08 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -965,13 +965,18 @@ impl<'a> State<'a> { try!(self.word_nbsp("trait")); try!(self.print_ident(item.ident)); try!(self.print_generics(generics)); - // TODO find and print the unbound, remove it from bounds - /*if let &Some(ref tref) = unbound { - try!(space(&mut self.s)); - try!(self.word_space("for ?")); - try!(self.print_trait_ref(tref)); - }*/ - try!(self.print_bounds(":", bounds[])); + let bounds: Vec<_> = bounds.iter().map(|b| b.clone()).collect(); + let mut real_bounds = Vec::with_capacity(bounds.len()); + for b in bounds.into_iter() { + if let TraitTyParamBound(ref ptr, ast::TraitBoundModifier::Maybe) = b { + try!(space(&mut self.s)); + try!(self.word_space("for ?")); + try!(self.print_trait_ref(&ptr.trait_ref)); + } else { + real_bounds.push(b); + } + } + try!(self.print_bounds(":", real_bounds[])); try!(self.print_where_clause(generics)); try!(word(&mut self.s, " ")); try!(self.bopen()); -- cgit 1.4.1-3-g733a5