Don't resolve upvars in fn() { ... } exprs

Closes #1467
This commit is contained in:
Marijn Haverbeke 2012-01-09 11:32:18 +01:00
parent 26536e6915
commit 9fa7491676

View 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);