diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2014-08-05 22:59:24 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2014-08-07 07:23:59 -0400 |
| commit | fcab98038c3b466d9ecd00b0f27e9c748e7acbde (patch) | |
| tree | 345deba110cec778935c4d2fa1b7f9150c90f7c3 /src/libsyntax/print | |
| parent | 1a53c001170f8084ce850498d5e8f22b5e7da72c (diff) | |
| download | rust-fcab98038c3b466d9ecd00b0f27e9c748e7acbde.tar.gz rust-fcab98038c3b466d9ecd00b0f27e9c748e7acbde.zip | |
Temporary bootstrapping hack: introduce syntax for r egion bounds like `'b:'a`,
meaning `'b outlives 'a`. Syntax currently does nothing but is needed for full fix to #5763. To use this syntax, the issue_5763_bootstrap feature guard is required.
Diffstat (limited to 'src/libsyntax/print')
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index ab0269f807a..d60e4cb3b54 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -2082,10 +2082,26 @@ impl<'a> State<'a> { } pub fn print_lifetime(&mut self, - lifetime: &ast::Lifetime) -> IoResult<()> { + lifetime: &ast::Lifetime) + -> IoResult<()> + { self.print_name(lifetime.name) } + pub fn print_lifetime_def(&mut self, + lifetime: &ast::LifetimeDef) + -> IoResult<()> + { + try!(self.print_lifetime(&lifetime.lifetime)); + let mut sep = ":"; + for v in lifetime.bounds.iter() { + try!(word(&mut self.s, sep)); + try!(self.print_lifetime(v)); + sep = "+"; + } + Ok(()) + } + pub fn print_generics(&mut self, generics: &ast::Generics) -> IoResult<()> { let total = generics.lifetimes.len() + generics.ty_params.len(); @@ -2102,7 +2118,7 @@ impl<'a> State<'a> { |s, &idx| { if idx < generics.lifetimes.len() { let lifetime = generics.lifetimes.get(idx); - s.print_lifetime(lifetime) + s.print_lifetime_def(lifetime) } else { let idx = idx - generics.lifetimes.len(); let param = generics.ty_params.get(idx); |
