diff options
| author | bors <bors@rust-lang.org> | 2014-08-18 19:16:15 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-08-18 19:16:15 +0000 |
| commit | 98ec85f19e42edafc3d82a737f0ccbd1b7f4ff6c (patch) | |
| tree | 6d159da0fd6e2fb638ac02ab238cd85d808c73e7 /src/libsyntax/parse | |
| parent | fcbf012ee6c8719090caa6041e0ec1312e1b7659 (diff) | |
| parent | 67deb2e65e150a1b9b2fcd457da47e3e13b2c4f7 (diff) | |
| download | rust-98ec85f19e42edafc3d82a737f0ccbd1b7f4ff6c.tar.gz rust-98ec85f19e42edafc3d82a737f0ccbd1b7f4ff6c.zip | |
auto merge of #16575 : pcwalton/rust/import-foo-as-bar, r=aturon
of `use bar as foo`. Change all uses of `use foo = bar` to `use bar as foo`. Implements RFC #47. Closes #16461. [breaking-change] r? @aturon
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/mod.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/parse/obsolete.rs | 5 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 5 |
3 files changed, 9 insertions, 3 deletions
diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 271cefeaf03..e76e4adcd7f 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -328,7 +328,7 @@ pub mod with_hygiene { -> Vec<ast::TokenTree> { // it appears to me that the cfg doesn't matter here... indeed, // parsing tt's probably shouldn't require a parser at all. - use make_reader = super::lexer::make_reader_with_embedded_idents; + use super::lexer::make_reader_with_embedded_idents as make_reader; let cfg = Vec::new(); let srdr = make_reader(&sess.span_diagnostic, filemap); let mut p1 = Parser::new(sess, cfg, box srdr); diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs index afcf84753a6..5273addf4f5 100644 --- a/src/libsyntax/parse/obsolete.rs +++ b/src/libsyntax/parse/obsolete.rs @@ -34,6 +34,7 @@ pub enum ObsoleteSyntax { ObsoleteOwnedSelf, ObsoleteManagedType, ObsoleteManagedExpr, + ObsoleteImportRenaming, } pub trait ParserObsoleteMethods { @@ -83,6 +84,10 @@ impl<'a> ParserObsoleteMethods for parser::Parser<'a> { "`@` notation for a managed pointer allocation", "use the `box(GC)` operator instead of `@`" ), + ObsoleteImportRenaming => ( + "`use foo = bar` syntax", + "write `use bar as foo` instead" + ) }; self.report(sp, kind, kind_str, desc); diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 80b852111a2..9e2829e6380 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -5385,7 +5385,6 @@ impl<'a> Parser<'a> { match self.token { token::EQ => { // x = foo::bar - // NOTE(stage0, #16461, pcwalton): Deprecate after snapshot. self.bump(); let path_lo = self.span.lo; path = vec!(self.parse_ident()); @@ -5394,8 +5393,10 @@ impl<'a> Parser<'a> { let id = self.parse_ident(); path.push(id); } + let span = mk_sp(path_lo, self.span.hi); + self.obsolete(span, ObsoleteImportRenaming); let path = ast::Path { - span: mk_sp(path_lo, self.span.hi), + span: span, global: false, segments: path.move_iter().map(|identifier| { ast::PathSegment { |
