From f49b891ce534101695bb012982cf50d21665feef Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Tue, 29 May 2012 16:11:15 -0700 Subject: Include capture clauses when generating metadata. This may fix the bug that's blocking Issue #2441. --- src/rustc/middle/astencode.rs | 6 +++++- src/rustc/middle/capture.rs | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src/rustc') diff --git a/src/rustc/middle/astencode.rs b/src/rustc/middle/astencode.rs index 5a43611b276..4d412447797 100644 --- a/src/rustc/middle/astencode.rs +++ b/src/rustc/middle/astencode.rs @@ -252,7 +252,11 @@ fn visit_ids(item: ast::inlined_item, vfn: fn@(ast::node_id)) { vfn(m.self_id); vec::iter(tps) {|tp| vfn(tp.id)} } - visit::fk_anon(*) | visit::fk_fn_block(*) { + visit::fk_anon(_, capture_clause) + | visit::fk_fn_block(capture_clause) { + for vec::each(*capture_clause) {|clause| + vfn(clause.id); + } } } diff --git a/src/rustc/middle/capture.rs b/src/rustc/middle/capture.rs index d6edd2b935d..64dafc09a7c 100644 --- a/src/rustc/middle/capture.rs +++ b/src/rustc/middle/capture.rs @@ -67,6 +67,9 @@ fn compute_capture_vars(tcx: ty::ctxt, // first add entries for anything explicitly named in the cap clause for (*cap_clause).each { |cap_item| + #debug("Doing capture var: %s (%?)", + cap_item.name, cap_item.id); + let cap_def = tcx.def_map.get(cap_item.id); let cap_def_id = ast_util::def_id_of_def(cap_def).node; if cap_item.is_move { -- cgit 1.4.1-3-g733a5