From e991855d66cb299337b293d3e2d1b7f0a511ff69 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 24 Jun 2012 18:01:27 -0700 Subject: [PATCH] Make 'do' expressions accept stack closures --- src/rustc/middle/block_use.rs | 2 +- src/test/run-pass/do-stack.rs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 src/test/run-pass/do-stack.rs diff --git a/src/rustc/middle/block_use.rs b/src/rustc/middle/block_use.rs index ea1cb3f235e..9fcc3d286fc 100644 --- a/src/rustc/middle/block_use.rs +++ b/src/rustc/middle/block_use.rs @@ -34,7 +34,7 @@ fn visit_expr(ex: @expr, cx: ctx, v: visit::vt) { i += 1u; } } - expr_loop_body(body) { + expr_loop_body(body) | expr_do_body(body) { cx.allow_block = true; v.visit_expr(body, cx, v); } diff --git a/src/test/run-pass/do-stack.rs b/src/test/run-pass/do-stack.rs new file mode 100644 index 00000000000..c7fec67542d --- /dev/null +++ b/src/test/run-pass/do-stack.rs @@ -0,0 +1,5 @@ +fn f(f: fn&(int)) { f(10) } + +fn main() { + do f() { |i| assert i == 10 } +}