about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-12-27 18:03:28 -0800
committerPatrick Walton <pcwalton@mimiga.net>2014-01-03 14:01:59 -0800
commit39f0270544af19bf51b0088c93fe5cf58a8eccbe (patch)
tree320f9274d173ae83d0b8a34b49ddc537d100f508 /src/libsyntax
parent1dbeb5b2ac3ee6ea0634036e9778b2eb5a2445e4 (diff)
downloadrust-39f0270544af19bf51b0088c93fe5cf58a8eccbe.tar.gz
rust-39f0270544af19bf51b0088c93fe5cf58a8eccbe.zip
libsyntax: Remove an unnecessary `@mut io::Reader`
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ast_util.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs
index 9d62eaee5c3..70e4922aabf 100644
--- a/src/libsyntax/ast_util.rs
+++ b/src/libsyntax/ast_util.rs
@@ -17,7 +17,7 @@ use parse::token;
 use visit::Visitor;
 use visit;
 
-use std::cell::RefCell;
+use std::cell::{Cell, RefCell};
 use std::hashmap::HashMap;
 use std::u32;
 use std::local_data;
@@ -602,21 +602,23 @@ pub fn visit_ids_for_inlined_item<O: IdVisitingOperation>(item: &inlined_item,
 }
 
 struct IdRangeComputingVisitor {
-    result: @mut id_range,
+    result: Cell<id_range>,
 }
 
 impl IdVisitingOperation for IdRangeComputingVisitor {
     fn visit_id(&self, id: NodeId) {
-        self.result.add(id)
+        let mut id_range = self.result.get();
+        id_range.add(id);
+        self.result.set(id_range)
     }
 }
 
 pub fn compute_id_range_for_inlined_item(item: &inlined_item) -> id_range {
-    let result = @mut id_range::max();
-    visit_ids_for_inlined_item(item, &IdRangeComputingVisitor {
-        result: result,
-    });
-    *result
+    let visitor = IdRangeComputingVisitor {
+        result: Cell::new(id_range::max())
+    };
+    visit_ids_for_inlined_item(item, &visitor);
+    visitor.result.get()
 }
 
 pub fn is_item_impl(item: @ast::item) -> bool {