2011-08-23 17:45:24 -05:00
|
|
|
// Issue #787
|
|
|
|
// Don't try to clean up uninitizaed locals
|
|
|
|
|
|
|
|
use std;
|
|
|
|
|
2011-09-02 17:34:58 -05:00
|
|
|
fn test_break() { while true { let x: @int = break; } }
|
2011-08-23 17:45:24 -05:00
|
|
|
|
2011-09-02 17:34:58 -05:00
|
|
|
fn test_cont() { let i = 0; while i < 1 { i += 1; let x: @int = cont; } }
|
2011-08-23 17:45:24 -05:00
|
|
|
|
2011-09-02 17:34:58 -05:00
|
|
|
fn test_ret() { let x: @int = ret; }
|
2011-08-23 17:45:24 -05:00
|
|
|
|
|
|
|
fn test_fail() {
|
2011-10-13 17:37:07 -05:00
|
|
|
fn# f(&&_i: ()) { std::task::unsupervise(); let x: @int = fail; }
|
2011-10-13 23:23:07 -05:00
|
|
|
std::task::spawn((), f);
|
2011-08-23 17:45:24 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn test_fail_indirect() {
|
2011-09-02 17:34:58 -05:00
|
|
|
fn f() -> ! { fail; }
|
2011-10-13 17:37:07 -05:00
|
|
|
fn# g(&&_i: ()) { std::task::unsupervise(); let x: @int = f(); }
|
2011-10-13 23:23:07 -05:00
|
|
|
std::task::spawn((), g);
|
2011-08-23 17:45:24 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
test_break();
|
|
|
|
test_cont();
|
|
|
|
test_ret();
|
|
|
|
test_fail();
|
|
|
|
test_fail_indirect();
|
2011-09-02 17:34:58 -05:00
|
|
|
}
|