about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorMarijn Haverbeke <marijnh@gmail.com>2012-01-09 11:32:18 +0100
committerMarijn Haverbeke <marijnh@gmail.com>2012-01-09 11:32:18 +0100
commit9fa749167680a2d4de9fa07cbb2c8336deb7d42f (patch)
tree392aa6a798ac25e7d05ff6dd2682139c16950efc /src/comp
parent26536e69151d5f8e083d8165421039b409c93ee3 (diff)
downloadrust-9fa749167680a2d4de9fa07cbb2c8336deb7d42f.tar.gz
rust-9fa749167680a2d4de9fa07cbb2c8336deb7d42f.zip
Don't resolve upvars in fn() { ... } exprs
Closes #1467
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/middle/resolve.rs9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/comp/middle/resolve.rs b/src/comp/middle/resolve.rs
index 24c8b2e204e..664b2418d63 100644
--- a/src/comp/middle/resolve.rs
+++ b/src/comp/middle/resolve.rs
@@ -486,12 +486,9 @@ fn visit_fn_with_scope(e: @env, fk: visit::fn_kind, decl: ast::fn_decl,
     for c: @ast::constr in decl.constraints { resolve_constr(e, c, sc, v); }
     let scope = alt fk {
       visit::fk_item_fn(_, tps) | visit::fk_res(_, tps) |
-      visit::fk_method(_, tps) {
-        scope_bare_fn(decl, id, tps)
-      }
-      visit::fk_anon(_) | visit::fk_fn_block. {
-        scope_fn_expr(decl, id, [])
-      }
+      visit::fk_method(_, tps) { scope_bare_fn(decl, id, tps) }
+      visit::fk_anon(ast::proto_bare.) { scope_bare_fn(decl, id, []) }
+      visit::fk_anon(_) | visit::fk_fn_block. { scope_fn_expr(decl, id, []) }
     };
 
     visit::visit_fn(fk, decl, body, sp, id, cons(scope, @sc), v);