about summary refs log tree commit diff
path: root/src/rustllvm/PassWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-09-13 08:06:00 +0000
committerbors <bors@rust-lang.org>2014-09-13 08:06:00 +0000
commit90304ed2669a9554a5aa5c58194e71fa373abe13 (patch)
tree572c4c7259015d9320162fd3b74b51cd4f8cc73c /src/rustllvm/PassWrapper.cpp
parenta9cf19889ae7030c7df25cf41105906d12616f1e (diff)
parenta9b929dbb6b8e86ccedf96a207a6253c0af1d6c9 (diff)
downloadrust-90304ed2669a9554a5aa5c58194e71fa373abe13.tar.gz
rust-90304ed2669a9554a5aa5c58194e71fa373abe13.zip
auto merge of #17175 : pcwalton/rust/region-bounds-on-closures, r=huonw
This can break code like:

    fn call_rec(f: |uint| -> uint) -> uint {
        (|x| f(x))(call_rec(f))
    }

Change this code to use a temporary instead of violating the borrow
rules:

    fn call_rec(f: |uint| -> uint) -> uint {
        let tmp = call_rec(|x| f(x)); f(tmp)
    }

Closes #17144.

[breaking-change]

r? @huonw
Diffstat (limited to 'src/rustllvm/PassWrapper.cpp')
0 files changed, 0 insertions, 0 deletions