about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/rustc/middle/block_use.rs2
-rw-r--r--src/test/run-pass/do-stack.rs5
2 files changed, 6 insertions, 1 deletions
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<ctx>) {
             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 }
+}