diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2017-07-07 02:39:55 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2017-07-10 00:20:25 +0300 |
| commit | 287de2595a40c03d9ffe81f55c13c731fd01583f (patch) | |
| tree | a905bf090561b54245a31fcc2580b1682c55e522 /src/libsyntax/print | |
| parent | 8b1271fcdd5b5958c76c43084e544d075d7d5dfd (diff) | |
| download | rust-287de2595a40c03d9ffe81f55c13c731fd01583f.tar.gz rust-287de2595a40c03d9ffe81f55c13c731fd01583f.zip | |
Store all generic arguments for method calls in AST
Diffstat (limited to 'src/libsyntax/print')
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index d449e412d6c..51c48f15f29 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1951,18 +1951,14 @@ impl<'a> State<'a> { } fn print_expr_method_call(&mut self, - ident: ast::SpannedIdent, - tys: &[P<ast::Ty>], + segment: &ast::PathSegment, args: &[P<ast::Expr>]) -> io::Result<()> { let base_args = &args[1..]; self.print_expr(&args[0])?; word(&mut self.s, ".")?; - self.print_ident(ident.node)?; - if !tys.is_empty() { - word(&mut self.s, "::<")?; - self.commasep(Inconsistent, tys, - |s, ty| s.print_type(ty))?; - word(&mut self.s, ">")?; + self.print_ident(segment.identifier)?; + if let Some(ref parameters) = segment.parameters { + self.print_path_parameters(parameters, true)?; } self.print_call_post(base_args) } @@ -2041,8 +2037,8 @@ impl<'a> State<'a> { ast::ExprKind::Call(ref func, ref args) => { self.print_expr_call(func, &args[..])?; } - ast::ExprKind::MethodCall(ident, ref tys, ref args) => { - self.print_expr_method_call(ident, &tys[..], &args[..])?; + ast::ExprKind::MethodCall(ref segment, ref args) => { + self.print_expr_method_call(segment, &args[..])?; } ast::ExprKind::Binary(op, ref lhs, ref rhs) => { self.print_expr_binary(op, lhs, rhs)?; |
