From 67deb2e65e150a1b9b2fcd457da47e3e13b2c4f7 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Mon, 18 Aug 2014 08:29:44 -0700 Subject: libsyntax: Remove the `use foo = bar` syntax from the language in favor of `use bar as foo`. Change all uses of `use foo = bar` to `use bar as foo`. Implements RFC #47. Closes #16461. [breaking-change] --- src/libsyntax/parse/mod.rs | 2 +- src/libsyntax/parse/obsolete.rs | 5 +++++ src/libsyntax/parse/parser.rs | 5 +++-- 3 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src/libsyntax/parse') 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 { // 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 { -- cgit 1.4.1-3-g733a5