diff --git a/src/librustuv/idle.rs b/src/librustuv/idle.rs index 30e02b168ca..46de70c1746 100644 --- a/src/librustuv/idle.rs +++ b/src/librustuv/idle.rs @@ -117,7 +117,10 @@ fn call(&mut self) { match *slot.get() { (ref mut task, ref mut val) => { *val = n; - task.take_unwrap() + match task.take() { + Some(t) => t, + None => return + } } } } diff --git a/src/test/compile-fail/issue-8727.rs b/src/test/compile-fail/issue-8727.rs index 7088c4df6b7..003f1d67cdb 100644 --- a/src/test/compile-fail/issue-8727.rs +++ b/src/test/compile-fail/issue-8727.rs @@ -14,7 +14,11 @@ struct Data(~Option); -fn generic( _ : ~[(Data,T)] ) {let rec : ~[(Data,(bool,T))] = ~[]; generic( rec ); } //~ ERROR overly deep expansion of inlined function +fn generic( _ : ~[(Data,T)] ) { + //~^ ERROR overly deep expansion of inlined function + let rec : ~[(Data,(bool,T))] = ~[]; + generic( rec ); +} fn main () { diff --git a/src/test/run-pass/issue-8860.rs b/src/test/run-pass/issue-8860.rs index e7d2a273939..230dce16151 100644 --- a/src/test/run-pass/issue-8860.rs +++ b/src/test/run-pass/issue-8860.rs @@ -8,6 +8,8 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +// ignore-fast + extern mod green; static mut DROP: int = 0i;