diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2017-07-23 19:32:36 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2017-07-27 22:59:35 +0300 |
| commit | ce3beb609f75fb690d6980c9e6a62c6efa6f3d97 (patch) | |
| tree | 393b1ae3dd4e554835638bb3cc5c451caa2aad24 /src/libsyntax/ext | |
| parent | da77a1a0acf54fddba97052d55187a441224d022 (diff) | |
| download | rust-ce3beb609f75fb690d6980c9e6a62c6efa6f3d97.tar.gz rust-ce3beb609f75fb690d6980c9e6a62c6efa6f3d97.zip | |
Discern between `Path` and `Path<>` in AST
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/build.rs | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index d8140417214..af9143eadbc 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -326,14 +326,10 @@ impl<'a> AstBuilder for ExtCtxt<'a> { } segments.extend(idents.into_iter().map(|i| ast::PathSegment::from_ident(i, sp))); - let parameters = if lifetimes.is_empty() && types.is_empty() && bindings.is_empty() { - None + let parameters = if !lifetimes.is_empty() || !types.is_empty() || !bindings.is_empty() { + ast::AngleBracketedParameterData { lifetimes, types, bindings }.into() } else { - Some(P(ast::PathParameters::AngleBracketed(ast::AngleBracketedParameterData { - lifetimes: lifetimes, - types: types, - bindings: bindings, - }))) + None }; segments.push(ast::PathSegment { identifier: last_identifier, @@ -369,15 +365,15 @@ impl<'a> AstBuilder for ExtCtxt<'a> { bindings: Vec<ast::TypeBinding>) -> (ast::QSelf, ast::Path) { let mut path = trait_path; - let parameters = ast::AngleBracketedParameterData { - lifetimes: lifetimes, - types: types, - bindings: bindings, + let parameters = if !lifetimes.is_empty() || !types.is_empty() || !bindings.is_empty() { + ast::AngleBracketedParameterData { lifetimes, types, bindings }.into() + } else { + None }; path.segments.push(ast::PathSegment { identifier: ident.node, span: ident.span, - parameters: Some(P(ast::PathParameters::AngleBracketed(parameters))), + parameters: parameters, }); (ast::QSelf { |
