diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2018-02-11 09:28:47 -0500 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2018-02-22 17:31:37 -0500 |
| commit | 0625d4c282a9fa2a5ba3c6448017898baccfcf9a (patch) | |
| tree | 80f45edb1bf43f3302404a5a8cfffdf2284a1580 /src/libsyntax/ext | |
| parent | 1eab1b19a39f54a825c9107086f0c1752b81224d (diff) | |
| download | rust-0625d4c282a9fa2a5ba3c6448017898baccfcf9a.tar.gz rust-0625d4c282a9fa2a5ba3c6448017898baccfcf9a.zip | |
begin crate-relative paths with `crate`
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/build.rs | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 2e6de96d65a..57978ca9c80 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -319,14 +319,8 @@ impl<'a> AstBuilder for ExtCtxt<'a> { types: Vec<P<ast::Ty>>, bindings: Vec<ast::TypeBinding> ) -> ast::Path { - use syntax::parse::token; - let last_identifier = idents.pop().unwrap(); let mut segments: Vec<ast::PathSegment> = Vec::new(); - if global && - !idents.first().map_or(false, |&ident| token::Ident(ident).is_path_segment_keyword()) { - segments.push(ast::PathSegment::crate_root(span)); - } segments.extend(idents.into_iter().map(|i| ast::PathSegment::from_ident(i, span))); let parameters = if !lifetimes.is_empty() || !types.is_empty() || !bindings.is_empty() { @@ -335,7 +329,9 @@ impl<'a> AstBuilder for ExtCtxt<'a> { None }; segments.push(ast::PathSegment { identifier: last_identifier, span, parameters }); - ast::Path { span, segments } + let path = ast::Path { span, segments }; + + if global { path.default_to_global() } else { path } } /// Constructs a qualified path. |
