diff options
| author | bors <bors@rust-lang.org> | 2013-08-11 14:17:09 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-08-11 14:17:09 -0700 |
| commit | b285f1e6c90332188bb720bf320c507fc4156fdc (patch) | |
| tree | b1b5657b028f7a1c5253ae3bc8d87b806e464a6e /src/libsyntax | |
| parent | 63c62bea3ac2782ae421d5bd211f2e7393bad7a2 (diff) | |
| parent | 7343478d67ba3eb0c62dcc37db65d82d12b8e140 (diff) | |
| download | rust-b285f1e6c90332188bb720bf320c507fc4156fdc.tar.gz rust-b285f1e6c90332188bb720bf320c507fc4156fdc.zip | |
auto merge of #8455 : nikomatsakis/rust/issue-5762-objects-dralston-d, r=graydon
Fix #5762 and various other aspects of object invocation. r? @graydon
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast_map.rs | 50 | ||||
| -rw-r--r-- | src/libsyntax/ast_util.rs | 50 | ||||
| -rw-r--r-- | src/libsyntax/attr.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/diagnostic.rs | 18 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 40 | ||||
| -rw-r--r-- | src/libsyntax/ext/trace_macros.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ext/tt/macro_parser.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/ext/tt/macro_rules.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/ext/tt/transcribe.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/parse/comments.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/parse/lexer.rs | 21 | ||||
| -rw-r--r-- | src/libsyntax/parse/mod.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 96 |
15 files changed, 156 insertions, 155 deletions
diff --git a/src/libsyntax/ast_map.rs b/src/libsyntax/ast_map.rs index 6b4da9671a9..1fea0c2e6f9 100644 --- a/src/libsyntax/ast_map.rs +++ b/src/libsyntax/ast_map.rs @@ -85,7 +85,7 @@ pub type map = @mut HashMap<NodeId, ast_node>; pub struct Ctx { map: map, path: path, - diag: @span_handler, + diag: @mut span_handler, } impl Ctx { @@ -141,7 +141,7 @@ impl Ctx { } } - visit::visit_expr(self as @Visitor<()>, ex, ()); + visit::visit_expr(self as @mut Visitor<()>, ex, ()); } fn map_fn(@mut self, @@ -153,18 +153,18 @@ impl Ctx { for a in decl.inputs.iter() { self.map.insert(a.id, node_arg); } - visit::visit_fn(self as @Visitor<()>, fk, decl, body, sp, id, ()); + visit::visit_fn(self as @mut Visitor<()>, fk, decl, body, sp, id, ()); } fn map_stmt(@mut self, stmt: @stmt) { self.map.insert(stmt_id(stmt), node_stmt(stmt)); - visit::visit_stmt(self as @Visitor<()>, stmt, ()); + visit::visit_stmt(self as @mut Visitor<()>, stmt, ()); } fn map_block(@mut self, b: &Block) { // clone is FIXME #2543 self.map.insert(b.id, node_block((*b).clone())); - visit::visit_block(self as @Visitor<()>, b, ()); + visit::visit_block(self as @mut Visitor<()>, b, ()); } fn map_pat(@mut self, pat: @pat) { @@ -177,7 +177,7 @@ impl Ctx { _ => () } - visit::visit_pat(self as @Visitor<()>, pat, ()); + visit::visit_pat(self as @mut Visitor<()>, pat, ()); } } @@ -254,13 +254,13 @@ impl Visitor<()> for Ctx { } _ => self.path.push(path_name(i.ident)) } - visit::visit_item(self as @Visitor<()>, i, ()); + visit::visit_item(self as @mut Visitor<()>, i, ()); self.path.pop(); } fn visit_pat(@mut self, pat: @pat, _: ()) { self.map_pat(pat); - visit::visit_pat(self as @Visitor<()>, pat, ()) + visit::visit_pat(self as @mut Visitor<()>, pat, ()) } fn visit_expr(@mut self, expr: @expr, _: ()) { @@ -288,27 +288,27 @@ impl Visitor<()> for Ctx { // XXX: Methods below can become default methods. fn visit_mod(@mut self, module: &_mod, _: span, _: NodeId, _: ()) { - visit::visit_mod(self as @Visitor<()>, module, ()) + visit::visit_mod(self as @mut Visitor<()>, module, ()) } fn visit_view_item(@mut self, view_item: &view_item, _: ()) { - visit::visit_view_item(self as @Visitor<()>, view_item, ()) + visit::visit_view_item(self as @mut Visitor<()>, view_item, ()) } fn visit_foreign_item(@mut self, foreign_item: @foreign_item, _: ()) { - visit::visit_foreign_item(self as @Visitor<()>, foreign_item, ()) + visit::visit_foreign_item(self as @mut Visitor<()>, foreign_item, ()) } fn visit_local(@mut self, local: @Local, _: ()) { - visit::visit_local(self as @Visitor<()>, local, ()) + visit::visit_local(self as @mut Visitor<()>, local, ()) } fn visit_arm(@mut self, arm: &arm, _: ()) { - visit::visit_arm(self as @Visitor<()>, arm, ()) + visit::visit_arm(self as @mut Visitor<()>, arm, ()) } fn visit_decl(@mut self, decl: @decl, _: ()) { - visit::visit_decl(self as @Visitor<()>, decl, ()) + visit::visit_decl(self as @mut Visitor<()>, decl, ()) } fn visit_expr_post(@mut self, _: @expr, _: ()) { @@ -316,11 +316,11 @@ impl Visitor<()> for Ctx { } fn visit_ty(@mut self, typ: &Ty, _: ()) { - visit::visit_ty(self as @Visitor<()>, typ, ()) + visit::visit_ty(self as @mut Visitor<()>, typ, ()) } fn visit_generics(@mut self, generics: &Generics, _: ()) { - visit::visit_generics(self as @Visitor<()>, generics, ()) + visit::visit_generics(self as @mut Visitor<()>, generics, ()) } fn visit_fn(@mut self, @@ -330,7 +330,7 @@ impl Visitor<()> for Ctx { span: span, node_id: NodeId, _: ()) { - visit::visit_fn(self as @Visitor<()>, + visit::visit_fn(self as @mut Visitor<()>, function_kind, function_declaration, block, @@ -340,11 +340,11 @@ impl Visitor<()> for Ctx { } fn visit_ty_method(@mut self, ty_method: &TypeMethod, _: ()) { - visit::visit_ty_method(self as @Visitor<()>, ty_method, ()) + visit::visit_ty_method(self as @mut Visitor<()>, ty_method, ()) } fn visit_trait_method(@mut self, trait_method: &trait_method, _: ()) { - visit::visit_trait_method(self as @Visitor<()>, trait_method, ()) + visit::visit_trait_method(self as @mut Visitor<()>, trait_method, ()) } fn visit_struct_def(@mut self, @@ -353,7 +353,7 @@ impl Visitor<()> for Ctx { generics: &Generics, node_id: NodeId, _: ()) { - visit::visit_struct_def(self as @Visitor<()>, + visit::visit_struct_def(self as @mut Visitor<()>, struct_def, ident, generics, @@ -362,24 +362,24 @@ impl Visitor<()> for Ctx { } fn visit_struct_field(@mut self, struct_field: @struct_field, _: ()) { - visit::visit_struct_field(self as @Visitor<()>, struct_field, ()) + visit::visit_struct_field(self as @mut Visitor<()>, struct_field, ()) } } -pub fn map_crate(diag: @span_handler, c: &Crate) -> map { +pub fn map_crate(diag: @mut span_handler, c: &Crate) -> map { let cx = @mut Ctx { map: @mut HashMap::new(), path: ~[], diag: diag, }; - visit::visit_crate(cx as @Visitor<()>, c, ()); + visit::visit_crate(cx as @mut Visitor<()>, c, ()); cx.map } // Used for items loaded from external crate that are being inlined into this // crate. The `path` should be the path to the item but should not include // the item itself. -pub fn map_decoded_item(diag: @span_handler, +pub fn map_decoded_item(diag: @mut span_handler, map: map, path: path, ii: &inlined_item) { @@ -409,7 +409,7 @@ pub fn map_decoded_item(diag: @span_handler, } // visit the item / method contents and add those to the map: - ii.accept((), cx as @Visitor<()>); + ii.accept((), cx as @mut Visitor<()>); } pub fn node_id_to_str(map: map, id: NodeId, itr: @ident_interner) -> ~str { diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index 0005180ef50..d99f8cab493 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -298,7 +298,7 @@ pub fn struct_field_visibility(field: ast::struct_field) -> visibility { pub trait inlined_item_utils { fn ident(&self) -> ident; fn id(&self) -> ast::NodeId; - fn accept<E: Clone>(&self, e: E, v: @Visitor<E>); + fn accept<E: Clone>(&self, e: E, v: @mut Visitor<E>); } impl inlined_item_utils for inlined_item { @@ -318,7 +318,7 @@ impl inlined_item_utils for inlined_item { } } - fn accept<E: Clone>(&self, e: E, v: @Visitor<E>) { + fn accept<E: Clone>(&self, e: E, v: @mut Visitor<E>) { match *self { ii_item(i) => v.visit_item(i, e), ii_foreign(i) => v.visit_foreign_item(i, e), @@ -414,7 +414,7 @@ impl Visitor<()> for IdVisitor { node_id: NodeId, env: ()) { (self.visit_callback)(node_id); - visit::visit_mod(self as @Visitor<()>, module, env) + visit::visit_mod(self as @mut Visitor<()>, module, env) } fn visit_view_item(@mut self, view_item: &view_item, env: ()) { @@ -439,12 +439,12 @@ impl Visitor<()> for IdVisitor { } } } - visit::visit_view_item(self as @Visitor<()>, view_item, env) + visit::visit_view_item(self as @mut Visitor<()>, view_item, env) } fn visit_foreign_item(@mut self, foreign_item: @foreign_item, env: ()) { (self.visit_callback)(foreign_item.id); - visit::visit_foreign_item(self as @Visitor<()>, foreign_item, env) + visit::visit_foreign_item(self as @mut Visitor<()>, foreign_item, env) } fn visit_item(@mut self, item: @item, env: ()) { @@ -466,39 +466,39 @@ impl Visitor<()> for IdVisitor { _ => {} } - visit::visit_item(self as @Visitor<()>, item, env); + visit::visit_item(self as @mut Visitor<()>, item, env); self.visited_outermost = false } fn visit_local(@mut self, local: @Local, env: ()) { (self.visit_callback)(local.id); - visit::visit_local(self as @Visitor<()>, local, env) + visit::visit_local(self as @mut Visitor<()>, local, env) } fn visit_block(@mut self, block: &Block, env: ()) { (self.visit_callback)(block.id); - visit::visit_block(self as @Visitor<()>, block, env) + visit::visit_block(self as @mut Visitor<()>, block, env) } fn visit_stmt(@mut self, statement: @stmt, env: ()) { (self.visit_callback)(ast_util::stmt_id(statement)); - visit::visit_stmt(self as @Visitor<()>, statement, env) + visit::visit_stmt(self as @mut Visitor<()>, statement, env) } // XXX: Default fn visit_arm(@mut self, arm: &arm, env: ()) { - visit::visit_arm(self as @Visitor<()>, arm, env) + visit::visit_arm(self as @mut Visitor<()>, arm, env) } fn visit_pat(@mut self, pattern: @pat, env: ()) { (self.visit_callback)(pattern.id); - visit::visit_pat(self as @Visitor<()>, pattern, env) + visit::visit_pat(self as @mut Visitor<()>, pattern, env) } // XXX: Default fn visit_decl(@mut self, declaration: @decl, env: ()) { - visit::visit_decl(self as @Visitor<()>, declaration, env) + visit::visit_decl(self as @mut Visitor<()>, declaration, env) } fn visit_expr(@mut self, expression: @expr, env: ()) { @@ -509,7 +509,7 @@ impl Visitor<()> for IdVisitor { } } (self.visit_callback)(expression.id); - visit::visit_expr(self as @Visitor<()>, expression, env) + visit::visit_expr(self as @mut Visitor<()>, expression, env) } // XXX: Default @@ -523,12 +523,12 @@ impl Visitor<()> for IdVisitor { ty_path(_, _, id) => (self.visit_callback)(id), _ => {} } - visit::visit_ty(self as @Visitor<()>, typ, env) + visit::visit_ty(self as @mut Visitor<()>, typ, env) } fn visit_generics(@mut self, generics: &Generics, env: ()) { self.visit_generics_helper(generics); - visit::visit_generics(self as @Visitor<()>, generics, env) + visit::visit_generics(self as @mut Visitor<()>, generics, env) } fn visit_fn(@mut self, @@ -563,7 +563,7 @@ impl Visitor<()> for IdVisitor { (self.visit_callback)(argument.id) } - visit::visit_fn(self as @Visitor<()>, + visit::visit_fn(self as @mut Visitor<()>, function_kind, function_declaration, block, @@ -581,12 +581,12 @@ impl Visitor<()> for IdVisitor { // XXX: Default fn visit_ty_method(@mut self, type_method: &TypeMethod, env: ()) { - visit::visit_ty_method(self as @Visitor<()>, type_method, env) + visit::visit_ty_method(self as @mut Visitor<()>, type_method, env) } // XXX: Default fn visit_trait_method(@mut self, trait_method: &trait_method, env: ()) { - visit::visit_trait_method(self as @Visitor<()>, trait_method, env) + visit::visit_trait_method(self as @mut Visitor<()>, trait_method, env) } // XXX: Default @@ -596,7 +596,7 @@ impl Visitor<()> for IdVisitor { generics: &Generics, node_id: NodeId, env: ()) { - visit::visit_struct_def(self as @Visitor<()>, + visit::visit_struct_def(self as @mut Visitor<()>, struct_definition, identifier, generics, @@ -606,18 +606,18 @@ impl Visitor<()> for IdVisitor { fn visit_struct_field(@mut self, struct_field: @struct_field, env: ()) { (self.visit_callback)(struct_field.node.id); - visit::visit_struct_field(self as @Visitor<()>, struct_field, env) + visit::visit_struct_field(self as @mut Visitor<()>, struct_field, env) } } pub fn id_visitor(vfn: @fn(NodeId), pass_through_items: bool) - -> @Visitor<()> { - let visitor = @IdVisitor { + -> @mut Visitor<()> { + let visitor = @mut IdVisitor { visit_callback: vfn, pass_through_items: pass_through_items, visited_outermost: false, }; - visitor as @Visitor<()> + visitor as @mut Visitor<()> } pub fn visit_ids_for_inlined_item(item: &inlined_item, vfn: @fn(NodeId)) { @@ -757,9 +757,9 @@ impl EachViewItem for ast::Crate { callback: f, }; let visitor = @mut SimpleVisitorVisitor { - simple_visitor: data as @SimpleVisitor, + simple_visitor: data as @mut SimpleVisitor, }; - visit::visit_crate(visitor as @Visitor<()>, self, ()); + visit::visit_crate(visitor as @mut Visitor<()>, self, ()); true } } diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs index b0dda2b7dc8..47d8ebecca0 100644 --- a/src/libsyntax/attr.rs +++ b/src/libsyntax/attr.rs @@ -313,7 +313,7 @@ pub fn test_cfg<AM: AttrMetaMethods, It: Iterator<AM>> no_cfgs || some_cfg_matches } -pub fn require_unique_names(diagnostic: @span_handler, +pub fn require_unique_names(diagnostic: @mut span_handler, metas: &[@MetaItem]) { let mut set = HashSet::new(); for meta in metas.iter() { diff --git a/src/libsyntax/diagnostic.rs b/src/libsyntax/diagnostic.rs index 2b6cb91a5df..5cdfe8e0f11 100644 --- a/src/libsyntax/diagnostic.rs +++ b/src/libsyntax/diagnostic.rs @@ -50,7 +50,7 @@ pub trait span_handler { fn span_note(@mut self, sp: span, msg: &str); fn span_bug(@mut self, sp: span, msg: &str) -> !; fn span_unimpl(@mut self, sp: span, msg: &str) -> !; - fn handler(@mut self) -> @handler; + fn handler(@mut self) -> @mut handler; } struct HandlerT { @@ -59,7 +59,7 @@ struct HandlerT { } struct CodemapT { - handler: @handler, + handler: @mut handler, cm: @codemap::CodeMap, } @@ -84,7 +84,7 @@ impl span_handler for CodemapT { fn span_unimpl(@mut self, sp: span, msg: &str) -> ! { self.span_bug(sp, ~"unimplemented " + msg); } - fn handler(@mut self) -> @handler { + fn handler(@mut self) -> @mut handler { self.handler } } @@ -143,12 +143,12 @@ pub fn ice_msg(msg: &str) -> ~str { fmt!("internal compiler error: %s", msg) } -pub fn mk_span_handler(handler: @handler, cm: @codemap::CodeMap) - -> @span_handler { - @mut CodemapT { handler: handler, cm: cm } as @span_handler +pub fn mk_span_handler(handler: @mut handler, cm: @codemap::CodeMap) + -> @mut span_handler { + @mut CodemapT { handler: handler, cm: cm } as @mut span_handler } -pub fn mk_handler(emitter: Option<Emitter>) -> @handler { +pub fn mk_handler(emitter: Option<Emitter>) -> @mut handler { let emit: Emitter = match emitter { Some(e) => e, None => { @@ -157,7 +157,7 @@ pub fn mk_handler(emitter: Option<Emitter>) -> @handler { } }; - @mut HandlerT { err_count: 0, emit: emit } as @handler + @mut HandlerT { err_count: 0, emit: emit } as @mut handler } #[deriving(Eq)] @@ -341,7 +341,7 @@ fn print_macro_backtrace(cm: @codemap::CodeMap, sp: span) { } } -pub fn expect<T:Clone>(diag: @span_handler, +pub fn expect<T:Clone>(diag: @mut span_handler, opt: Option<T>, msg: &fn() -> ~str) -> T { match opt { diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 1963f3aef49..1547446957e 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -548,52 +548,52 @@ impl Visitor<()> for NewNameFinderContext { } } // use the default traversal for non-pat_idents - _ => visit::visit_pat(self as @Visitor<()>, pattern, ()) + _ => visit::visit_pat(self as @mut Visitor<()>, pattern, ()) } } // XXX: Methods below can become default methods. fn visit_mod(@mut self, module: &ast::_mod, _: span, _: NodeId, _: ()) { - visit::visit_mod(self as @Visitor<()>, module, ()) + visit::visit_mod(self as @mut Visitor<()>, module, ()) } fn visit_view_item(@mut self, view_item: &ast::view_item, _: ()) { - visit::visit_view_item(self as @Visitor<()>, view_item, ()) + visit::visit_view_item(self as @mut Visitor<()>, view_item, ()) } fn visit_item(@mut self, item: @ast::item, _: ()) { - visit::visit_item(self as @Visitor<()>, item, ()) + visit::visit_item(self as @mut Visitor<()>, item, ()) } fn visit_foreign_item(@mut self, foreign_item: @ast::foreign_item, _: ()) { - visit::visit_foreign_item(self as @Visitor<()>, foreign_item, ()) + visit::visit_foreign_item(self as @mut Visitor<()>, foreign_item, ()) } fn visit_local(@mut self, local: @ast::Local, _: ()) { - visit::visit_local(self as @Visitor<()>, local, ()) + visit::visit_local(self as @mut Visitor<()>, local, ()) } fn visit_block(@mut self, block: &ast::Block, _: ()) { - visit::visit_block(self as @Visitor<()>, block, ()) + visit::visit_block(self as @mut Visitor<()>, block, ()) } fn visit_stmt(@mut self, stmt: @ast::stmt, _: ()) { - visit::visit_stmt(self as @Visitor<()>, stmt, ()) + visit::visit_stmt(self as @mut Visitor<()>, stmt, ()) } fn visit_arm(@mut self, arm: &ast::arm, _: ()) { - visit::visit_arm(self as @Visitor<()>, arm, ()) + visit::visit_arm(self as @mut Visitor<()>, arm, ()) } fn visit_decl(@mut self, decl: @ast::decl, _: ()) { - visit::visit_decl(self as @Visitor<()>, decl, ()) + visit::visit_decl(self as @mut Visitor<()>, decl, ()) } fn visit_expr(@mut self, expr: @ast::expr, _: ()) { - visit::visit_expr(self as @Visitor<()>, expr, ()) + visit::visit_expr(self as @mut Visitor<()>, expr, ()) } fn visit_expr_post(@mut self, _: @ast::expr, _: ()) { @@ -601,11 +601,11 @@ impl Visitor<()> for NewNameFinderContext { } fn visit_ty(@mut self, typ: &ast::Ty, _: ()) { - visit::visit_ty(self as @Visitor<()>, typ, ()) + visit::visit_ty(self as @mut Visitor<()>, typ, ()) } fn visit_generics(@mut self, generics: &ast::Generics, _: ()) { - visit::visit_generics(self as @Visitor<()>, generics, ()) + visit::visit_generics(self as @mut Visitor<()>, generics, ()) } fn visit_fn(@mut self, @@ -615,7 +615,7 @@ impl Visitor<()> for NewNameFinderContext { span: span, node_id: NodeId, _: ()) { - visit::visit_fn(self as @Visitor<()>, + visit::visit_fn(self as @mut Visitor<()>, function_kind, function_declaration, block, @@ -625,13 +625,13 @@ impl Visitor<()> for NewNameFinderContext { } fn visit_ty_method(@mut self, ty_method: &ast::TypeMethod, _: ()) { - visit::visit_ty_method(self as @Visitor<()>, ty_method, ()) + visit::visit_ty_method(self as @mut Visitor<()>, ty_method, ()) } fn visit_trait_method(@mut self, trait_method: &ast::trait_method, _: ()) { - visit::visit_trait_method(self as @Visitor<()>, trait_method, ()) + visit::visit_trait_method(self as @mut Visitor<()>, trait_method, ()) } fn visit_struct_def(@mut self, @@ -640,7 +640,7 @@ impl Visitor<()> for NewNameFinderContext { generics: &ast::Generics, node_id: NodeId, _: ()) { - visit::visit_struct_def(self as @Visitor<()>, + visit::visit_struct_def(self as @mut Visitor<()>, struct_def, ident, generics, @@ -651,18 +651,18 @@ impl Visitor<()> for NewNameFinderContext { fn visit_struct_field(@mut self, struct_field: @ast::struct_field, _: ()) { - visit::visit_struct_field(self as @Visitor<()>, struct_field, ()) + visit::visit_struct_field(self as @mut Visitor<()>, struct_field, ()) } } // return a visitor that extracts the pat_ident paths // from a given pattern and puts them in a mutable // array (passed in to the traversal) -pub fn new_name_finder(idents: @mut ~[ast::ident]) -> @Visitor<()> { +pub fn new_name_finder(idents: @mut ~[ast::ident]) -> @mut Visitor<()> { let context = @mut NewNameFinderContext { ident_accumulator: idents, }; - context as @Visitor<()> + context as @mut Visitor<()> } pub fn expand_block(extsbox: @mut SyntaxEnv, diff --git a/src/libsyntax/ext/trace_macros.rs b/src/libsyntax/ext/trace_macros.rs index f7f17d3ba64..f3e7613d96a 100644 --- a/src/libsyntax/ext/trace_macros.rs +++ b/src/libsyntax/ext/trace_macros.rs @@ -25,7 +25,7 @@ pub fn expand_trace_macros(cx: @ExtCtxt, let tt_rdr = new_tt_reader(cx.parse_sess().span_diagnostic, None, tt.to_owned()); - let rdr = tt_rdr as @reader; + let rdr = tt_rdr as @mut reader; let rust_parser = Parser(sess, cfg.clone(), rdr.dup()); if rust_parser.is_keyword(keywords::True) { diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index 29963a7b461..c208a7f7e3e 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -224,7 +224,7 @@ pub enum parse_result { pub fn parse_or_else( sess: @mut ParseSess, cfg: ast::CrateConfig, - rdr: @reader, + rdr: @mut reader, ms: ~[matcher] ) -> HashMap<ident, @named_match> { match parse(sess, cfg, rdr, ms) { @@ -237,7 +237,7 @@ pub fn parse_or_else( pub fn parse( sess: @mut ParseSess, cfg: ast::CrateConfig, - rdr: @reader, + rdr: @mut reader, ms: &[matcher] ) -> parse_result { let mut cur_eis = ~[]; diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs index 10735dad32f..54ac1f1e48f 100644 --- a/src/libsyntax/ext/tt/macro_rules.rs +++ b/src/libsyntax/ext/tt/macro_rules.rs @@ -59,7 +59,7 @@ pub fn add_new_extension(cx: @ExtCtxt, arg.clone()); let argument_map = parse_or_else(cx.parse_sess(), cx.cfg(), - arg_reader as @reader, + arg_reader as @mut reader, argument_gram); // Extract the arguments: @@ -101,7 +101,7 @@ pub fn add_new_extension(cx: @ExtCtxt, s_d, None, arg.to_owned() - ) as @reader; + ) as @mut reader; match parse(cx.parse_sess(), cx.cfg(), arg_rdr, *mtcs) { success(named_matches) => { let rhs = match rhses[i] { @@ -123,7 +123,7 @@ pub fn add_new_extension(cx: @ExtCtxt, rhs); let p = @Parser(cx.parse_sess(), cx.cfg(), - trncbr as @reader); + trncbr as @mut reader); // Let the context choose how to interpret the result. // Weird, but useful for X-macros. diff --git a/src/libsyntax/ext/tt/transcribe.rs b/src/libsyntax/ext/tt/transcribe.rs index 9d3e916b500..13bad252243 100644 --- a/src/libsyntax/ext/tt/transcribe.rs +++ b/src/libsyntax/ext/tt/transcribe.rs @@ -30,7 +30,7 @@ struct TtFrame { } pub struct TtReader { - sp_diag: @span_handler, + sp_diag: @mut span_handler, // the unzipped tree: stack: @mut TtFrame, /* for MBE-style macro transcription */ @@ -45,7 +45,7 @@ pub struct TtReader { /** This can do Macro-By-Example transcription. On the other hand, if * `src` contains no `tt_seq`s and `tt_nonterminal`s, `interp` can (and * should) be none. */ -pub fn new_tt_reader(sp_diag: @span_handler, +pub fn new_tt_reader(sp_diag: @mut span_handler, interp: Option<HashMap<ident,@named_match>>, src: ~[ast::token_tree]) -> @mut TtReader { diff --git a/src/libsyntax/parse/comments.rs b/src/libsyntax/parse/comments.rs index 5b9725ec6a0..9a9164f5102 100644 --- a/src/libsyntax/parse/comments.rs +++ b/src/libsyntax/parse/comments.rs @@ -267,7 +267,7 @@ fn read_block_comment(rdr: @mut StringReader, while level > 0 { debug!("=== block comment level %d", level); if is_eof(rdr) { - (rdr as @reader).fatal(~"unterminated block comment"); + (rdr as @mut reader).fatal(~"unterminated block comment"); } if rdr.curr == '\n' { trim_whitespace_prefix_and_push_line(&mut lines, curr_line, @@ -334,7 +334,7 @@ pub struct lit { // it appears this function is called only from pprust... that's // probably not a good thing. pub fn gather_comments_and_literals(span_diagnostic: - @diagnostic::span_handler, + @mut diagnostic::span_handler, path: @str, srdr: @io::Reader) -> (~[cmnt], ~[lit]) { diff --git a/src/libsyntax/parse/lexer.rs b/src/libsyntax/parse/lexer.rs index bde568b2610..d0041021f7c 100644 --- a/src/libsyntax/parse/lexer.rs +++ b/src/libsyntax/parse/lexer.rs @@ -28,9 +28,9 @@ pub trait reader { fn is_eof(@mut self) -> bool; fn next_token(@mut self) -> TokenAndSpan; fn fatal(@mut self, ~str) -> !; - fn span_diag(@mut self) -> @span_handler; + fn span_diag(@mut self) -> @mut span_handler; fn peek(@mut self) -> TokenAndSpan; - fn dup(@mut self) -> @reader; + fn dup(@mut self) -> @mut reader; } #[deriving(Clone, Eq)] @@ -40,7 +40,7 @@ pub struct TokenAndSpan { } pub struct StringReader { - span_diagnostic: @span_handler, + span_diagnostic: @mut span_handler, src: @str, // The absolute offset within the codemap of the next character to read pos: BytePos, @@ -56,7 +56,7 @@ pub struct StringReader { peek_span: span } -pub fn new_string_reader(span_diagnostic: @span_handler, +pub fn new_string_reader(span_diagnostic: @mut span_handler, filemap: @codemap::FileMap) -> @mut StringReader { let r = new_low_level_string_reader(span_diagnostic, filemap); @@ -65,13 +65,14 @@ pub fn new_string_reader(span_diagnostic: @span_handler, } /* For comments.rs, which hackily pokes into 'pos' and 'curr' */ -pub fn new_low_level_string_reader(span_diagnostic: @span_handler, +pub fn new_low_level_string_reader(span_diagnostic: @mut span_handler, filemap: @codemap::FileMap) -> @mut StringReader { // Force the initial reader bump to start on a fresh line let initial_char = '\n'; let r = @mut StringReader { - span_diagnostic: span_diagnostic, src: filemap.src, + span_diagnostic: span_diagnostic, + src: filemap.src, pos: filemap.start_pos, last_pos: filemap.start_pos, col: CharPos(0), @@ -116,7 +117,7 @@ impl reader for StringReader { fn fatal(@mut self, m: ~str) -> ! { self.span_diagnostic.span_fatal(self.peek_span, m) } - fn span_diag(@mut self) -> @span_handler { self.span_diagnostic } + fn span_diag(@mut self) -> @mut span_handler { self.span_diagnostic } fn peek(@mut self) -> TokenAndSpan { // XXX(pcwalton): Bad copy! TokenAndSpan { @@ -124,7 +125,7 @@ impl reader for StringReader { sp: self.peek_span, } } - fn dup(@mut self) -> @reader { dup_string_reader(self) as @reader } + fn dup(@mut self) -> @mut reader { dup_string_reader(self) as @mut reader } } impl reader for TtReader { @@ -137,14 +138,14 @@ impl reader for TtReader { fn fatal(@mut self, m: ~str) -> ! { self.sp_diag.span_fatal(self.cur_span, m); } - fn span_diag(@mut self) -> @span_handler { self.sp_diag } + fn span_diag(@mut self) -> @mut span_handler { self.sp_diag } fn peek(@mut self) -> TokenAndSpan { TokenAndSpan { tok: self.cur_tok.clone(), sp: self.cur_span, } } - fn dup(@mut self) -> @reader { dup_tt_reader(self) as @reader } + fn dup(@mut self) -> @mut reader { dup_tt_reader(self) as @mut reader } } // EFFECT: advance peek_tok and peek_span to refer to the next token. diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 1731a587a8e..23c6a8b9720 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -43,7 +43,7 @@ pub mod obsolete; pub struct ParseSess { cm: @codemap::CodeMap, // better be the same as the one in the reader! next_id: NodeId, - span_diagnostic: @span_handler, // better be the same as the one in the reader! + span_diagnostic: @mut span_handler, // better be the same as the one in the reader! /// Used to determine and report recursive mod inclusions included_mod_stack: ~[Path], } @@ -58,7 +58,7 @@ pub fn new_parse_sess(demitter: Option<Emitter>) -> @mut ParseSess { } } -pub fn new_parse_sess_special_handler(sh: @span_handler, +pub fn new_parse_sess_special_handler(sh: @mut span_handler, cm: @codemap::CodeMap) -> @mut ParseSess { @mut ParseSess { @@ -306,7 +306,7 @@ pub fn filemap_to_tts(sess: @mut ParseSess, filemap: @FileMap) // parsing tt's probably shouldn't require a parser at all. let cfg = ~[]; let srdr = lexer::new_string_reader(sess.span_diagnostic, filemap); - let p1 = Parser(sess, cfg, srdr as @reader); + let p1 = Parser(sess, cfg, srdr as @mut reader); p1.parse_all_token_trees() } @@ -315,7 +315,7 @@ pub fn tts_to_parser(sess: @mut ParseSess, tts: ~[ast::token_tree], cfg: ast::CrateConfig) -> Parser { let trdr = lexer::new_tt_reader(sess.span_diagnostic, None, tts); - Parser(sess, cfg, trdr as @reader) + Parser(sess, cfg, trdr as @mut reader) } // abort if necessary diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 59db1a3cfa2..27e339f000c 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -265,7 +265,7 @@ struct ParsedItemsAndViewItems { pub fn Parser(sess: @mut ParseSess, cfg: ast::CrateConfig, - rdr: @reader) + rdr: @mut reader) -> Parser { let tok0 = rdr.next_token(); let interner = get_ident_interner(); @@ -315,7 +315,7 @@ pub struct Parser { tokens_consumed: @mut uint, restriction: @mut restriction, quote_depth: @mut uint, // not (yet) related to the quasiquoter - reader: @reader, + reader: @mut reader, interner: @token::ident_interner, /// The set of seen errors about obsolete syntax. Used to suppress /// extra detail when the same error is seen twice diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index ffe9575a864..6a3d829aca0 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -104,7 +104,7 @@ pub static default_columns: uint = 78u; // copy forward. pub fn print_crate(cm: @CodeMap, intr: @ident_interner, - span_diagnostic: @diagnostic::span_handler, + span_diagnostic: @mut diagnostic::span_handler, crate: &ast::Crate, filename: @str, input: @io::Reader, diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 7aa52bc13e3..c3a5ba7116d 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -88,11 +88,11 @@ pub trait Visitor<E> { fn visit_struct_field(@mut self, @struct_field, E); } -pub fn visit_crate<E:Clone>(visitor: @Visitor<E>, crate: &Crate, env: E) { +pub fn visit_crate<E:Clone>(visitor: @mut Visitor<E>, crate: &Crate, env: E) { visitor.visit_mod(&crate.module, crate.span, CRATE_NODE_ID, env) } -pub fn visit_mod<E:Clone>(visitor: @Visitor<E>, module: &_mod, env: E) { +pub fn visit_mod<E:Clone>(visitor: @mut Visitor<E>, module: &_mod, env: E) { for view_item in module.view_items.iter() { visitor.visit_view_item(view_item, env.clone()) } @@ -101,11 +101,11 @@ pub fn visit_mod<E:Clone>(visitor: @Visitor<E>, module: &_mod, env: E) { } } -pub fn visit_view_item<E:Clone>(_: @Visitor<E>, _: &view_item, _: E) { +pub fn visit_view_item<E:Clone>(_: @mut Visitor<E>, _: &view_item, _: E) { // Empty! } -pub fn visit_local<E:Clone>(visitor: @Visitor<E>, local: &Local, env: E) { +pub fn visit_local<E:Clone>(visitor: @mut Visitor<E>, local: &Local, env: E) { visitor.visit_pat(local.pat, env.clone()); visitor.visit_ty(&local.ty, env.clone()); match local.init { @@ -114,13 +114,13 @@ pub fn visit_local<E:Clone>(visitor: @Visitor<E>, local: &Local, env: E) { } } -fn visit_trait_ref<E:Clone>(visitor: @Visitor<E>, +fn visit_trait_ref<E:Clone>(visitor: @mut Visitor<E>, trait_ref: &ast::trait_ref, env: E) { visit_path(visitor, &trait_ref.path, env) } -pub fn visit_item<E:Clone>(visitor: @Visitor<E>, item: &item, env: E) { +pub fn visit_item<E:Clone>(visitor: @mut Visitor<E>, item: &item, env: E) { match item.node { item_static(ref typ, _, expr) => { visitor.visit_ty(typ, env.clone()); @@ -187,7 +187,7 @@ pub fn visit_item<E:Clone>(visitor: @Visitor<E>, item: &item, env: E) { } } -pub fn visit_enum_def<E:Clone>(visitor: @Visitor<E>, +pub fn visit_enum_def<E:Clone>(visitor: @mut Visitor<E>, enum_definition: &ast::enum_def, generics: &Generics, env: E) { @@ -209,11 +209,11 @@ pub fn visit_enum_def<E:Clone>(visitor: @Visitor<E>, } } -pub fn skip_ty<E>(_: @Visitor<E>, _: &Ty, _: E) { +pub fn skip_ty<E>(_: @mut Visitor<E>, _: &Ty, _: E) { // Empty! } -pub fn visit_ty<E:Clone>(visitor: @Visitor<E>, typ: &Ty, env: E) { +pub fn visit_ty<E:Clone>(visitor: @mut Visitor<E>, typ: &Ty, env: E) { match typ.node { ty_box(ref mutable_type) | ty_uniq(ref mutable_type) | ty_vec(ref mutable_type) | ty_ptr(ref mutable_type) | @@ -254,13 +254,13 @@ pub fn visit_ty<E:Clone>(visitor: @Visitor<E>, typ: &Ty, env: E) { } } -pub fn visit_path<E:Clone>(visitor: @Visitor<E>, path: &Path, env: E) { +pub fn visit_path<E:Clone>(visitor: @mut Visitor<E>, path: &Path, env: E) { for typ in path.types.iter() { visitor.visit_ty(typ, env.clone()) } } -pub fn visit_pat<E:Clone>(visitor: @Visitor<E>, pattern: &pat, env: E) { +pub fn visit_pat<E:Clone>(visitor: @mut Visitor<E>, pattern: &pat, env: E) { match pattern.node { pat_enum(ref path, ref children) => { visit_path(visitor, path, env.clone()); @@ -313,7 +313,7 @@ pub fn visit_pat<E:Clone>(visitor: @Visitor<E>, pattern: &pat, env: E) { } } -pub fn visit_foreign_item<E:Clone>(visitor: @Visitor<E>, +pub fn visit_foreign_item<E:Clone>(visitor: @mut Visitor<E>, foreign_item: &foreign_item, env: E) { match foreign_item.node { @@ -325,7 +325,7 @@ pub fn visit_foreign_item<E:Clone>(visitor: @Visitor<E>, } } -pub fn visit_ty_param_bounds<E:Clone>(visitor: @Visitor<E>, +pub fn visit_ty_param_bounds<E:Clone>(visitor: @mut Visitor<E>, bounds: &OptVec<TyParamBound>, env: E) { for bound in bounds.iter() { @@ -338,7 +338,7 @@ pub fn visit_ty_param_bounds<E:Clone>(visitor: @Visitor<E>, } } -pub fn visit_generics<E:Clone>(visitor: @Visitor<E>, +pub fn visit_generics<E:Clone>(visitor: @mut Visitor<E>, generics: &Generics, env: E) { for type_parameter in generics.ty_params.iter() { @@ -346,7 +346,7 @@ pub fn visit_generics<E:Clone>(visitor: @Visitor<E>, } } -pub fn visit_fn_decl<E:Clone>(visitor: @Visitor<E>, +pub fn visit_fn_decl<E:Clone>(visitor: @mut Visitor<E>, function_declaration: &fn_decl, env: E) { for argument in function_declaration.inputs.iter() { @@ -360,7 +360,7 @@ pub fn visit_fn_decl<E:Clone>(visitor: @Visitor<E>, // visit_fn() and check for fk_method(). I named this visit_method_helper() // because it is not a default impl of any method, though I doubt that really // clarifies anything. - Niko -pub fn visit_method_helper<E:Clone>(visitor: @Visitor<E>, +pub fn visit_method_helper<E:Clone>(visitor: @mut Visitor<E>, method: &method, env: E) { visitor.visit_fn(&fk_method(method.ident, &method.generics, method), @@ -371,7 +371,7 @@ pub fn visit_method_helper<E:Clone>(visitor: @Visitor<E>, env) } -pub fn visit_fn<E:Clone>(visitor: @Visitor<E>, +pub fn visit_fn<E:Clone>(visitor: @mut Visitor<E>, function_kind: &fn_kind, function_declaration: &fn_decl, function_body: &Block, @@ -384,7 +384,7 @@ pub fn visit_fn<E:Clone>(visitor: @Visitor<E>, visitor.visit_block(function_body, env) } -pub fn visit_ty_method<E:Clone>(visitor: @Visitor<E>, +pub fn visit_ty_method<E:Clone>(visitor: @mut Visitor<E>, method_type: &TypeMethod, env: E) { for argument_type in method_type.decl.inputs.iter() { @@ -394,7 +394,7 @@ pub fn visit_ty_method<E:Clone>(visitor: @Visitor<E>, visitor.visit_ty(&method_type.decl.output, env.clone()) } -pub fn visit_trait_method<E:Clone>(visitor: @Visitor<E>, +pub fn visit_trait_method<E:Clone>(visitor: @mut Visitor<E>, trait_method: &trait_method, env: E) { match *trait_method { @@ -405,7 +405,7 @@ pub fn visit_trait_method<E:Clone>(visitor: @Visitor<E>, } } -pub fn visit_struct_def<E:Clone>(visitor: @Visitor<E>, +pub fn visit_struct_def<E:Clone>(visitor: @mut Visitor<E>, struct_definition: @struct_def, _: ast::ident, _: &Generics, @@ -416,13 +416,13 @@ pub fn visit_struct_def<E:Clone>(visitor: @Visitor<E>, } } -pub fn visit_struct_field<E:Clone>(visitor: @Visitor<E>, +pub fn visit_struct_field<E:Clone>(visitor: @mut Visitor<E>, struct_field: &struct_field, env: E) { visitor.visit_ty(&struct_field.node.ty, env) } -pub fn visit_block<E:Clone>(visitor: @Visitor<E>, block: &Block, env: E) { +pub fn visit_block<E:Clone>(visitor: @mut Visitor<E>, block: &Block, env: E) { for view_item in block.view_items.iter() { visitor.visit_view_item(view_item, env.clone()) } @@ -432,7 +432,7 @@ pub fn visit_block<E:Clone>(visitor: @Visitor<E>, block: &Block, env: E) { visit_expr_opt(visitor, block.expr, env) } -pub fn visit_stmt<E>(visitor: @Visitor<E>, statement: &stmt, env: E) { +pub fn visit_stmt<E>(visitor: @mut Visitor<E>, statement: &stmt, env: E) { match statement.node { stmt_decl(declaration, _) => visitor.visit_decl(declaration, env), stmt_expr(expression, _) | stmt_semi(expression, _) => { @@ -442,14 +442,14 @@ pub fn visit_stmt<E>(visitor: @Visitor<E>, statement: &stmt, env: E) { } } -pub fn visit_decl<E:Clone>(visitor: @Visitor<E>, declaration: &decl, env: E) { +pub fn visit_decl<E:Clone>(visitor: @mut Visitor<E>, declaration: &decl, env: E) { match declaration.node { decl_local(ref local) => visitor.visit_local(*local, env), decl_item(item) => visitor.visit_item(item, env), } } -pub fn visit_expr_opt<E>(visitor: @Visitor<E>, +pub fn visit_expr_opt<E>(visitor: @mut Visitor<E>, optional_expression: Option<@expr>, env: E) { match optional_expression { @@ -458,7 +458,7 @@ pub fn visit_expr_opt<E>(visitor: @Visitor<E>, } } -pub fn visit_exprs<E:Clone>(visitor: @Visitor<E>, +pub fn visit_exprs<E:Clone>(visitor: @mut Visitor<E>, expressions: &[@expr], env: E) { for expression in expressions.iter() { @@ -466,11 +466,11 @@ pub fn visit_exprs<E:Clone>(visitor: @Visitor<E>, } } -pub fn visit_mac<E>(_: @Visitor<E>, _: &mac, _: E) { +pub fn visit_mac<E>(_: @mut Visitor<E>, _: &mac, _: E) { // Empty! } -pub fn visit_expr<E:Clone>(visitor: @Visitor<E>, expression: @expr, env: E) { +pub fn visit_expr<E:Clone>(visitor: @mut Visitor<E>, expression: @expr, env: E) { match expression.node { expr_vstore(subexpression, _) => { visitor.visit_expr(subexpression, env.clone()) @@ -595,7 +595,7 @@ pub fn visit_expr<E:Clone>(visitor: @Visitor<E>, expression: @expr, env: E) { visitor.visit_expr_post(expression, env.clone()) } -pub fn visit_arm<E:Clone>(visitor: @Visitor<E>, arm: &arm, env: E) { +pub fn visit_arm<E:Clone>(visitor: @mut Visitor<E>, arm: &arm, env: E) { for pattern in arm.pats.iter() { visitor.visit_pat(*pattern, env.clone()) } @@ -630,7 +630,7 @@ pub trait SimpleVisitor { } pub struct SimpleVisitorVisitor { - simple_visitor: @SimpleVisitor, + simple_visitor: @mut SimpleVisitor, } impl Visitor<()> for SimpleVisitorVisitor { @@ -640,58 +640,58 @@ impl Visitor<()> for SimpleVisitorVisitor { node_id: NodeId, env: ()) { self.simple_visitor.visit_mod(module, span, node_id); - visit_mod(self as @Visitor<()>, module, env) + visit_mod(self as @mut Visitor<()>, module, env) } fn visit_view_item(@mut self, view_item: &view_item, env: ()) { self.simple_visitor.visit_view_item(view_item); - visit_view_item(self as @Visitor<()>, view_item, env) + visit_view_item(self as @mut Visitor<()>, view_item, env) } fn visit_foreign_item(@mut self, foreign_item: @foreign_item, env: ()) { self.simple_visitor.visit_foreign_item(foreign_item); - visit_foreign_item(self as @Visitor<()>, foreign_item, env) + visit_foreign_item(self as @mut Visitor<()>, foreign_item, env) } fn visit_item(@mut self, item: @item, env: ()) { self.simple_visitor.visit_item(item); - visit_item(self as @Visitor<()>, item, env) + visit_item(self as @mut Visitor<()>, item, env) } fn visit_local(@mut self, local: @Local, env: ()) { self.simple_visitor.visit_local(local); - visit_local(self as @Visitor<()>, local, env) + visit_local(self as @mut Visitor<()>, local, env) } fn visit_block(@mut self, block: &Block, env: ()) { self.simple_visitor.visit_block(block); - visit_block(self as @Visitor<()>, block, env) + visit_block(self as @mut Visitor<()>, block, env) } fn visit_stmt(@mut self, statement: @stmt, env: ()) { self.simple_visitor.visit_stmt(statement); - visit_stmt(self as @Visitor<()>, statement, env) + visit_stmt(self as @mut Visitor<()>, statement, env) } fn visit_arm(@mut self, arm: &arm, env: ()) { self.simple_visitor.visit_arm(arm); - visit_arm(self as @Visitor<()>, arm, env) + visit_arm(self as @mut Visitor<()>, arm, env) } fn visit_pat(@mut self, pattern: @pat, env: ()) { self.simple_visitor.visit_pat(pattern); - visit_pat(self as @Visitor<()>, pattern, env) + visit_pat(self as @mut Visitor<()>, pattern, env) } fn visit_decl(@mut self, declaration: @decl, env: ()) { self.simple_visitor.visit_decl(declaration); - visit_decl(self as @Visitor<()>, declaration, env) + visit_decl(self as @mut Visitor<()>, declaration, env) } fn visit_expr(@mut self, expression: @expr, env: ()) { self.simple_visitor.visit_expr(expression); - visit_expr(self as @Visitor<()>, expression, env) + visit_expr(self as @mut Visitor<()>, expression, env) } fn visit_expr_post(@mut self, expression: @expr, _: ()) { self.simple_visitor.visit_expr_post(expression) } fn visit_ty(@mut self, typ: &Ty, env: ()) { self.simple_visitor.visit_ty(typ); - visit_ty(self as @Visitor<()>, typ, env) + visit_ty(self as @mut Visitor<()>, typ, env) } fn visit_generics(@mut self, generics: &Generics, env: ()) { self.simple_visitor.visit_generics(generics); - visit_generics(self as @Visitor<()>, generics, env) + visit_generics(self as @mut Visitor<()>, generics, env) } fn visit_fn(@mut self, function_kind: &fn_kind, @@ -705,7 +705,7 @@ impl Visitor<()> for SimpleVisitorVisitor { block, span, node_id); - visit_fn(self as @Visitor<()>, + visit_fn(self as @mut Visitor<()>, function_kind, function_declaration, block, @@ -715,11 +715,11 @@ impl Visitor<()> for SimpleVisitorVisitor { } fn visit_ty_method(@mut self, method_type: &TypeMethod, env: ()) { self.simple_visitor.visit_ty_method(method_type); - visit_ty_method(self as @Visitor<()>, method_type, env) + visit_ty_method(self as @mut Visitor<()>, method_type, env) } fn visit_trait_method(@mut self, trait_method: &trait_method, env: ()) { self.simple_visitor.visit_trait_method(trait_method); - visit_trait_method(self as @Visitor<()>, trait_method, env) + visit_trait_method(self as @mut Visitor<()>, trait_method, env) } fn visit_struct_def(@mut self, struct_definition: @struct_def, @@ -731,7 +731,7 @@ impl Visitor<()> for SimpleVisitorVisitor { identifier, generics, node_id); - visit_struct_def(self as @Visitor<()>, + visit_struct_def(self as @mut Visitor<()>, struct_definition, identifier, generics, @@ -740,7 +740,7 @@ impl Visitor<()> for SimpleVisitorVisitor { } fn visit_struct_field(@mut self, struct_field: @struct_field, env: ()) { self.simple_visitor.visit_struct_field(struct_field); - visit_struct_field(self as @Visitor<()>, struct_field, env) + visit_struct_field(self as @mut Visitor<()>, struct_field, env) } } |
