]> git.lizzy.rs Git - rust.git/commitdiff
Don't resolve upvars in fn() { ... } exprs
authorMarijn Haverbeke <marijnh@gmail.com>
Mon, 9 Jan 2012 10:32:18 +0000 (11:32 +0100)
committerMarijn Haverbeke <marijnh@gmail.com>
Mon, 9 Jan 2012 10:32:18 +0000 (11:32 +0100)
Closes #1467

src/comp/middle/resolve.rs

index 24c8b2e204e2544b6141383e85434e6abe89646d..664b2418d63bee7d91570c055577ad9f25718e9c 100644 (file)
@@ -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);