diff options
| author | Alex Burka <alex@alexburka.com> | 2017-10-02 12:27:45 +0000 |
|---|---|---|
| committer | Alex Burka <aburka@seas.upenn.edu> | 2017-12-14 12:56:26 -0500 |
| commit | d4a28268cc1c8314f0de2519c78ff97696486a36 (patch) | |
| tree | 30a4094b487f9f0772a103adb182602fd9aef7dd /src/libsyntax/print | |
| parent | 8624ea51172c8a86d5c7c47d740be65a3a9efbc6 (diff) | |
| download | rust-d4a28268cc1c8314f0de2519c78ff97696486a36.tar.gz rust-d4a28268cc1c8314f0de2519c78ff97696486a36.zip | |
add trait aliases to AST
Diffstat (limited to 'src/libsyntax/print')
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index e4b7dc26d32..e9386e5187f 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1381,6 +1381,27 @@ impl<'a> State<'a> { } self.bclose(item.span)?; } + ast::ItemKind::TraitAlias(ref generics, ref bounds) => { + self.head("")?; + self.print_visibility(&item.vis)?; + self.word_nbsp("trait")?; + self.print_ident(item.ident)?; + self.print_generics(generics)?; + let mut real_bounds = Vec::with_capacity(bounds.len()); + // FIXME(durka) this seems to be some quite outdated syntax + for b in bounds.iter() { + if let TraitTyParamBound(ref ptr, ast::TraitBoundModifier::Maybe) = *b { + self.s.space()?; + self.word_space("for ?")?; + self.print_trait_ref(&ptr.trait_ref)?; + } else { + real_bounds.push(b.clone()); + } + } + self.print_bounds(" = ", &real_bounds[..])?; + self.print_where_clause(&generics.where_clause)?; + self.s.word(";")?; + } ast::ItemKind::Mac(codemap::Spanned { ref node, .. }) => { self.print_path(&node.path, false, 0, false)?; self.s.word("! ")?; |
