From f96a2a2ca16a44f869336f7e28fc261551c1184c Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Fri, 5 Oct 2012 22:07:53 -0700 Subject: Remove by-mutable-ref mode from the compiler and test cases. Closes #3513 --- src/libsyntax/parse/obsolete.rs | 7 ++++++- src/libsyntax/parse/parser.rs | 11 ++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) (limited to 'src/libsyntax/parse') diff --git a/src/libsyntax/parse/obsolete.rs b/src/libsyntax/parse/obsolete.rs index 782535f5c2b..828d498ca3c 100644 --- a/src/libsyntax/parse/obsolete.rs +++ b/src/libsyntax/parse/obsolete.rs @@ -22,7 +22,8 @@ pub enum ObsoleteSyntax { ObsoleteClassMethod, ObsoleteClassTraits, ObsoletePrivSection, - ObsoleteModeInFnType + ObsoleteModeInFnType, + ObsoleteByMutRefMode } impl ObsoleteSyntax : cmp::Eq { @@ -94,6 +95,10 @@ impl parser : ObsoleteReporter { "to use a (deprecated) mode in a fn type, you should \ give the argument an explicit name (like `&&v: int`)" ), + ObsoleteByMutRefMode => ( + "by-mutable-reference mode", + "Declare an argument of type &mut T instead" + ), }; self.report(sp, kind, kind_str, desc); diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 6bee9190a83..22c25186c91 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -20,13 +20,13 @@ use obsolete::{ ObsoleteLowerCaseKindBounds, ObsoleteLet, ObsoleteFieldTerminator, ObsoleteStructCtor, ObsoleteWith, ObsoleteClassMethod, ObsoleteClassTraits, - ObsoleteModeInFnType + ObsoleteModeInFnType, ObsoleteByMutRefMode }; use ast::{_mod, add, alt_check, alt_exhaustive, arg, arm, attribute, bind_by_ref, bind_by_implicit_ref, bind_by_value, bind_by_move, bitand, bitor, bitxor, blk, blk_check_mode, bound_const, bound_copy, bound_send, bound_trait, bound_owned, box, by_copy, - by_move, by_mutbl_ref, by_ref, by_val, capture_clause, + by_move, by_ref, by_val, capture_clause, capture_item, cdir_dir_mod, cdir_src_mod, cdir_view_item, class_immutable, class_mutable, crate, crate_cfg, crate_directive, decl, decl_item, decl_local, @@ -570,9 +570,10 @@ impl parser { fn parse_arg_mode() -> mode { if self.eat(token::BINOP(token::AND)) { - self.span_fatal(copy self.last_span, - ~"Obsolete syntax has no effect"); - expl(by_mutbl_ref) + self.obsolete(copy self.span, + ObsoleteByMutRefMode); + // Bogus mode, but doesn't matter since it's an error + expl(by_ref) } else if self.eat(token::BINOP(token::MINUS)) { expl(by_move) } else if self.eat(token::ANDAND) { -- cgit 1.4.1-3-g733a5