summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-02-21 18:12:13 -0800
committerPatrick Walton <pcwalton@mimiga.net>2013-02-22 16:09:16 -0800
commit934c938f90662522c4a8a86bd58d7618207f5c2a (patch)
tree1c8d30efe22d539824b9255442aeb898a25ac7da /src/libsyntax/ext
parent77dc3ad810d4887d1148d2b0d8e7807ecadaea3e (diff)
downloadrust-934c938f90662522c4a8a86bd58d7618207f5c2a.tar.gz
rust-934c938f90662522c4a8a86bd58d7618207f5c2a.zip
libsyntax: De-mut the parser. rs=demuting
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/base.rs2
-rw-r--r--src/libsyntax/ext/pipes/parse_proto.rs19
-rw-r--r--src/libsyntax/ext/pipes/pipec.rs25
-rw-r--r--src/libsyntax/ext/quote.rs2
-rw-r--r--src/libsyntax/ext/tt/macro_parser.rs8
5 files changed, 27 insertions, 29 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs
index eb92b23c9d7..f3a74302400 100644
--- a/src/libsyntax/ext/base.rs
+++ b/src/libsyntax/ext/base.rs
@@ -339,7 +339,7 @@ pub fn get_exprs_from_tts(cx: ext_ctxt, tts: ~[ast::token_tree])
                                        cx.cfg(),
                                        tts);
     let mut es = ~[];
-    while p.token != token::EOF {
+    while *p.token != token::EOF {
         if es.len() != 0 {
             p.eat(token::COMMA);
         }
diff --git a/src/libsyntax/ext/pipes/parse_proto.rs b/src/libsyntax/ext/pipes/parse_proto.rs
index a2f881fc19f..66feb7cc753 100644
--- a/src/libsyntax/ext/pipes/parse_proto.rs
+++ b/src/libsyntax/ext/pipes/parse_proto.rs
@@ -25,7 +25,7 @@ pub trait proto_parser {
 
 pub impl proto_parser for parser::Parser {
     fn parse_proto(&self, id: ~str) -> protocol {
-        let proto = protocol(id, self.span);
+        let proto = protocol(id, *self.span);
 
         self.parse_seq_to_before_end(token::EOF, SeqSep {
                                         sep: None,
@@ -40,7 +40,7 @@ pub impl proto_parser for parser::Parser {
         let name = *self.interner.get(id);
 
         self.expect(token::COLON);
-        let dir = match copy self.token {
+        let dir = match *self.token {
           token::IDENT(n, _) => self.interner.get(n),
           _ => fail!()
         };
@@ -51,10 +51,11 @@ pub impl proto_parser for parser::Parser {
           _ => fail!()
         };
 
-        let typarms = if self.token == token::LT {
+        let typarms = if *self.token == token::LT {
             self.parse_ty_params()
-        }
-        else { ~[] };
+        } else {
+            ~[]
+        };
 
         let state = proto.add_state_poly(name, id, dir, typarms);
 
@@ -69,7 +70,7 @@ pub impl proto_parser for parser::Parser {
     fn parse_message(&self, state: state) {
         let mname = *self.interner.get(self.parse_ident());
 
-        let args = if self.token == token::LPAREN {
+        let args = if *self.token == token::LPAREN {
             self.parse_unspanned_seq(token::LPAREN,
                                      token::RPAREN, SeqSep {
                                         sep: Some(token::COMMA),
@@ -80,10 +81,10 @@ pub impl proto_parser for parser::Parser {
 
         self.expect(token::RARROW);
 
-        let next = match copy self.token {
+        let next = match *self.token {
           token::IDENT(_, _) => {
             let name = *self.interner.get(self.parse_ident());
-            let ntys = if self.token == token::LT {
+            let ntys = if *self.token == token::LT {
                 self.parse_unspanned_seq(token::LT,
                                          token::GT, SeqSep {
                                             sep: Some(token::COMMA),
@@ -101,7 +102,7 @@ pub impl proto_parser for parser::Parser {
           _ => self.fatal(~"invalid next state")
         };
 
-        state.add_message(mname, copy self.span, args, next);
+        state.add_message(mname, *self.span, args, next);
 
     }
 }
diff --git a/src/libsyntax/ext/pipes/pipec.rs b/src/libsyntax/ext/pipes/pipec.rs
index 25760aa01b6..444b09d9ae4 100644
--- a/src/libsyntax/ext/pipes/pipec.rs
+++ b/src/libsyntax/ext/pipes/pipec.rs
@@ -49,6 +49,9 @@ pub trait gen_init {
 pub impl gen_send for message {
     fn gen_send(&mut self, cx: ext_ctxt, try: bool) -> @ast::item {
         debug!("pipec: gen_send");
+        let name = self.name();
+        let params = self.get_params();
+
         match *self {
           message(ref _id, span, ref tys, this, Some(ref next_state)) => {
             debug!("pipec: next state exists");
@@ -67,7 +70,7 @@ pub impl gen_send for message {
                 args_ast);
 
             let mut body = ~"{\n";
-            body += fmt!("use super::%s;\n", self.name());
+            body += fmt!("use super::%s;\n", name);
 
             if this.proto.is_bounded() {
                 let (sp, rp) = match (this.dir, next.dir) {
@@ -96,7 +99,7 @@ pub impl gen_send for message {
                 body += fmt!("let %s = ::core::pipes::entangle();\n", pat);
             }
             body += fmt!("let message = %s(%s);\n",
-                         self.name(),
+                         name,
                          str::connect(vec::append_one(
                            arg_names.map(|x| cx.str_of(*x)),
                              ~"s"), ~", "));
@@ -121,13 +124,12 @@ pub impl gen_send for message {
                 rty = cx.ty_option(rty);
             }
 
-            let name = cx.ident_of(if try { ~"try_" + self.name()
-                                          } else { self.name() } );
+            let name = cx.ident_of(if try { ~"try_" + name } else { name } );
 
             cx.item_fn_poly(name,
                             args_ast,
                             rty,
-                            self.get_params(),
+                            params,
                             cx.expr_block(body))
           }
 
@@ -156,10 +158,8 @@ pub impl gen_send for message {
                 };
 
                 let mut body = ~"{ ";
-                body += fmt!("use super::%s;\n", self.name());
-                body += fmt!("let message = %s%s;\n",
-                             self.name(),
-                             message_args);
+                body += fmt!("use super::%s;\n", name);
+                body += fmt!("let message = %s%s;\n", name, message_args);
 
                 if !try {
                     body += fmt!("::core::pipes::send(pipe, message);\n");
@@ -175,10 +175,7 @@ pub impl gen_send for message {
 
                 let body = cx.parse_expr(body);
 
-                let name = if try {
-                    ~"try_" + self.name()
-                }
-                else { self.name() };
+                let name = if try { ~"try_" + name } else { name };
 
                 cx.item_fn_poly(cx.ident_of(name),
                                 args_ast,
@@ -187,7 +184,7 @@ pub impl gen_send for message {
                                 } else {
                                     cx.ty_nil_ast_builder()
                                 },
-                                self.get_params(),
+                                params,
                                 cx.expr_block(body))
             }
           }
diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs
index ffa6101d58f..d529ee0c01b 100644
--- a/src/libsyntax/ext/quote.rs
+++ b/src/libsyntax/ext/quote.rs
@@ -515,7 +515,7 @@ fn expand_tts(cx: ext_ctxt,
     // try removing it when enough of them are gone.
 
     let p = parse::new_parser_from_tts(cx.parse_sess(), cx.cfg(), tts);
-    p.quote_depth += 1u;
+    *p.quote_depth += 1u;
     let tts = p.parse_all_token_trees();
     p.abort_if_errors();
 
diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs
index 1a04da95801..890420edf6d 100644
--- a/src/libsyntax/ext/tt/macro_parser.rs
+++ b/src/libsyntax/ext/tt/macro_parser.rs
@@ -421,16 +421,16 @@ pub fn parse_nt(p: Parser, name: ~str) -> nonterminal {
       ~"expr" => token::nt_expr(p.parse_expr()),
       ~"ty" => token::nt_ty(p.parse_ty(false /* no need to disambiguate*/)),
       // this could be handled like a token, since it is one
-      ~"ident" => match copy p.token {
+      ~"ident" => match *p.token {
         token::IDENT(sn,b) => { p.bump(); token::nt_ident(sn,b) }
         _ => p.fatal(~"expected ident, found "
-                     + token::to_str(p.reader.interner(), copy p.token))
+                     + token::to_str(p.reader.interner(), *p.token))
       },
       ~"path" => token::nt_path(p.parse_path_with_tps(false)),
       ~"tt" => {
-        p.quote_depth += 1u; //but in theory, non-quoted tts might be useful
+        *p.quote_depth += 1u; //but in theory, non-quoted tts might be useful
         let res = token::nt_tt(@p.parse_token_tree());
-        p.quote_depth -= 1u;
+        *p.quote_depth -= 1u;
         res
       }
       ~"matchers" => token::nt_matchers(p.parse_matchers()),