about summary refs log tree commit diff
path: root/src/libsyntax/print
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2018-02-08 08:58:13 +0000
committervarkor <github@varkor.com>2018-06-20 12:19:03 +0100
commit494859e8dde5080534e94aba6d98affb921552f8 (patch)
tree661fcf1caa265de43643abf07b854460d966b862 /src/libsyntax/print
parentcca43a7f977963ee497ca091fbdf3cea95abdf47 (diff)
downloadrust-494859e8dde5080534e94aba6d98affb921552f8.tar.gz
rust-494859e8dde5080534e94aba6d98affb921552f8.zip
Consolidate PathParameters and AngleBracketedParameterData
Diffstat (limited to 'src/libsyntax/print')
-rw-r--r--src/libsyntax/print/pprust.rs29
1 files changed, 10 insertions, 19 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs
index 87edfd69e2b..dc204e3d0ef 100644
--- a/src/libsyntax/print/pprust.rs
+++ b/src/libsyntax/print/pprust.rs
@@ -13,7 +13,7 @@ pub use self::AnnNode::*;
 use rustc_target::spec::abi::{self, Abi};
 use ast::{self, BlockCheckMode, PatKind, RangeEnd, RangeSyntax};
 use ast::{SelfKind, RegionTyParamBound, TraitTyParamBound, TraitBoundModifier};
-use ast::{Attribute, MacDelimiter};
+use ast::{Attribute, MacDelimiter, GenericAngleBracketedParam};
 use util::parser::{self, AssocOp, Fixity};
 use attr;
 use codemap::{self, CodeMap};
@@ -1017,6 +1017,13 @@ impl<'a> State<'a> {
         Ok(())
     }
 
+    pub fn print_param(&mut self, param: &GenericAngleBracketedParam) -> io::Result<()> {
+        match param {
+            GenericAngleBracketedParam::Lifetime(lt) => self.print_lifetime(lt),
+            GenericAngleBracketedParam::Type(ty) => self.print_type(ty),
+        }
+    }
+
     pub fn print_type(&mut self, ty: &ast::Ty) -> io::Result<()> {
         self.maybe_print_comment(ty.span.lo())?;
         self.ibox(0)?;
@@ -2474,25 +2481,9 @@ impl<'a> State<'a> {
             ast::PathParameters::AngleBracketed(ref data) => {
                 self.s.word("<")?;
 
-                let mut comma = false;
-                for lifetime in &data.lifetimes {
-                    if comma {
-                        self.word_space(",")?
-                    }
-                    self.print_lifetime(lifetime)?;
-                    comma = true;
-                }
+                self.commasep(Inconsistent, &data.parameters, |s, p| s.print_param(p))?;
 
-                if !data.types.is_empty() {
-                    if comma {
-                        self.word_space(",")?
-                    }
-                    self.commasep(
-                        Inconsistent,
-                        &data.types,
-                        |s, ty| s.print_type(ty))?;
-                        comma = true;
-                }
+                let mut comma = data.parameters.len() != 0;
 
                 for binding in data.bindings.iter() {
                     if comma {