diff --git a/rust-version b/rust-version index a2b3daad97..69a46de1d4 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -f717b58dd70829f105960a071c7992b440720482 +3de0106789468b211bcc3a25c09c0cf07119186d diff --git a/src/lib.rs b/src/lib.rs index d185ec610c..ba9b69703a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -270,9 +270,7 @@ pub fn eval_main<'a, 'tcx: 'a>( trace!("Frame {}", i); trace!(" return: {:#?}", frame.return_place); for (i, local) in frame.locals.iter().enumerate() { - if let Ok(local) = local.access() { - trace!(" local {}: {:?}", i, local); - } + trace!(" local {}: {:?}", i, local.value); } } } diff --git a/tests/run-pass/async-fn.rs b/tests/run-pass/async-fn.rs index 79fcb59011..7af2304cb4 100644 --- a/tests/run-pass/async-fn.rs +++ b/tests/run-pass/async-fn.rs @@ -1,4 +1,3 @@ -// ignore-test FIXME ignored to let https://github.com/rust-lang/rust/pull/59119 land #![feature( async_await, await_macro, @@ -6,7 +5,7 @@ )] use std::{future::Future, pin::Pin, task::Poll, ptr}; -use std::task::{Waker, RawWaker, RawWakerVTable}; +use std::task::{Waker, RawWaker, RawWakerVTable, Context}; // See if we can run a basic `async fn` pub async fn foo(x: &u32, y: u32) -> u32 { @@ -27,15 +26,16 @@ fn raw_waker_wake(_this: *const ()) { } fn raw_waker_drop(_this: *const ()) {} -static RAW_WAKER: RawWakerVTable = RawWakerVTable { - clone: raw_waker_clone, - wake: raw_waker_wake, - drop: raw_waker_drop, -}; +static RAW_WAKER: RawWakerVTable = RawWakerVTable::new( + raw_waker_clone, + raw_waker_wake, + raw_waker_drop, +); fn main() { let x = 5; let mut fut = foo(&x, 7); let waker = unsafe { Waker::new_unchecked(RawWaker::new(ptr::null(), &RAW_WAKER)) }; - assert_eq!(unsafe { Pin::new_unchecked(&mut fut) }.poll(&waker), Poll::Ready(31)); + let mut context = Context::from_waker(&waker); + assert_eq!(unsafe { Pin::new_unchecked(&mut fut) }.poll(&mut context), Poll::Ready(31)); } diff --git a/tests/run-pass/closures.rs b/tests/run-pass/closures.rs index 9b379051eb..141e6cd6d0 100644 --- a/tests/run-pass/closures.rs +++ b/tests/run-pass/closures.rs @@ -40,9 +40,14 @@ fn fn_once_closure_with_multiple_args() -> i64 { } } +fn boxed(f: Box i32>) -> i32 { + f() +} + fn main() { assert_eq!(simple(), 12); assert_eq!(crazy_closure(), (84, 10, 10)); assert_eq!(closure_arg_adjustment_problem(), 3); assert_eq!(fn_once_closure_with_multiple_args(), 6); + assert_eq!(boxed(Box::new({let x = 13; move || x})), 13); }