Patrick Walton
|
a9b929dbb6
|
librustc: Make sure region bounds on closures outlive calls to them.
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]
|
2014-09-11 12:00:56 -07:00 |
|