/src/test/compile-fail/lambda-mutate-nested.rs
https://bitbucket.org/graydon/rust · Rust · 15 lines · 11 code · 1 blank · 3 comment · 0 complexity · 5f6dfb9a7800483dccde262f26d3cdb8 MD5 · raw file
- // error-pattern:assigning to captured outer immutable variable in a stack closure
- // Make sure that nesting a block within a fn@ doesn't let us
- // mutate upvars from a fn@.
- fn f2(x: fn()) { x(); }
- fn main() {
- let i = 0;
- let ctr = fn@ () -> int { f2(|| i = i + 1 ); return i; };
- log(error, ctr());
- log(error, ctr());
- log(error, ctr());
- log(error, ctr());
- log(error, ctr());
- log(error, i);
- }