diff options
| author | Tim Chevalier <[email protected]> | 2011-04-27 14:40:07 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-04-28 13:26:19 -0700 |
| commit | 93845d0bae9258e6617c79474cd4265fcafc133c (patch) | |
| tree | 1e8fa4f15c4d69bb44d693b657aaac2305f88c65 /src/rt/rust_kernel.cpp | |
| parent | Fix bug in handling of expr_alt (postcond for alts was being intersected with... (diff) | |
| download | rust-93845d0bae9258e6617c79474cd4265fcafc133c.tar.xz rust-93845d0bae9258e6617c79474cd4265fcafc133c.zip | |
Fix nested patterns in rustboot
The code for taking pattern-bound variables was being interspersed
with pattern code, so that if a nested pattern failed partway through,
a variable would be taken but never dropped (because the drop code
is inside the block representing the action for the pattern). For
example, in the pattern foo(?i, bar(some[t](_)), _), if the scrutinee
was foo(x, bar(none[t]), y), the variable i would be taken but never
dropped. The patch fixes this bug.
Diffstat (limited to 'src/rt/rust_kernel.cpp')
0 files changed, 0 insertions, 0 deletions