]> git.lizzy.rs Git - rust.git/commitdiff
auto merge of #9525 : klutzy/rust/obsolete-span-fix, r=alexcrichton
authorbors <bors@rust-lang.org>
Fri, 27 Sep 2013 05:11:14 +0000 (22:11 -0700)
committerbors <bors@rust-lang.org>
Fri, 27 Sep 2013 05:11:14 +0000 (22:11 -0700)
src/libsyntax/parse/parser.rs

index d9fb53b4677fc8d6dfe2b31272be2ece3eecff57..cc5143977cf2f8f9486719368ae1a5688699adbe 100644 (file)
@@ -922,6 +922,7 @@ pub fn parse_trait_methods(&self) -> ~[trait_method] {
             let attrs = p.parse_outer_attributes();
             let lo = p.span.lo;
 
+            let vis_span = *self.span;
             let vis = p.parse_visibility();
             let pur = p.parse_fn_purity();
             // NB: at the moment, trait methods are public by default; this
@@ -947,7 +948,7 @@ pub fn parse_trait_methods(&self) -> ~[trait_method] {
                 // NB: at the moment, visibility annotations on required
                 // methods are ignored; this could change.
                 if vis != ast::inherited {
-                    self.obsolete(*self.last_span,
+                    self.obsolete(vis_span,
                                   ObsoleteTraitFuncVisibility);
                 }
                 required(TypeMethod {
@@ -1213,14 +1214,16 @@ pub fn parse_borrowed_pointee(&self) -> ty_ {
     // parse an optional, obsolete argument mode.
     pub fn parse_arg_mode(&self) {
         if self.eat(&token::BINOP(token::MINUS)) {
-            self.obsolete(*self.span, ObsoleteMode);
+            self.obsolete(*self.last_span, ObsoleteMode);
         } else if self.eat(&token::ANDAND) {
-            self.obsolete(*self.span, ObsoleteMode);
+            self.obsolete(*self.last_span, ObsoleteMode);
         } else if self.eat(&token::BINOP(token::PLUS)) {
+            let lo = self.last_span.lo;
             if self.eat(&token::BINOP(token::PLUS)) {
-                self.obsolete(*self.span, ObsoleteMode);
+                let hi = self.last_span.hi;
+                self.obsolete(mk_sp(lo, hi), ObsoleteMode);
             } else {
-                self.obsolete(*self.span, ObsoleteMode);
+                self.obsolete(*self.last_span, ObsoleteMode);
             }
         } else {
             // Ignore.
@@ -3865,7 +3868,7 @@ fn parse_item_impl(&self) -> item_info {
 
         let mut meths = ~[];
         if self.eat(&token::SEMI) {
-            self.obsolete(*self.span, ObsoleteEmptyImpl);
+            self.obsolete(*self.last_span, ObsoleteEmptyImpl);
         } else {
             self.expect(&token::LBRACE);
             while !self.eat(&token::RBRACE) {