diff options
Diffstat (limited to 'tests/ui/unstable-features/run-pass/stmt_expr_attributes.rs')
-rw-r--r-- | tests/ui/unstable-features/run-pass/stmt_expr_attributes.rs | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/tests/ui/unstable-features/run-pass/stmt_expr_attributes.rs b/tests/ui/unstable-features/run-pass/stmt_expr_attributes.rs deleted file mode 100644 index 2b6377a..0000000 --- a/tests/ui/unstable-features/run-pass/stmt_expr_attributes.rs +++ /dev/null @@ -1,63 +0,0 @@ -// NB: If you change this test, change 'stmt_expr_attributes-feature-gate.rs' at the same time. - -#![allow(deprecated)] -// proc_macro_hygiene -// Tracking issue: https://github.com/rust-lang/rust/issues/54727 -#![feature(proc_macro_hygiene)] -// stmt_expr_attributes -// Tracking issue: https://github.com/rust-lang/rust/issues/15701 -#![feature(stmt_expr_attributes)] - -use pin_project::{pin_project, project}; -use std::pin::Pin; - -fn project_stmt_expr_nightly() { - #[pin_project] - enum Baz<A, B, C, D> { - Variant1(#[pin] A, B), - Variant2 { - #[pin] - field1: C, - field2: D, - }, - None, - } - - let mut baz = Baz::Variant1(1, 2); - - let mut baz = Pin::new(&mut baz).project(); - - #[project] - match &mut baz { - Baz::Variant1(x, y) => { - let x: &mut Pin<&mut i32> = x; - assert_eq!(**x, 1); - - let y: &mut &mut i32 = y; - assert_eq!(**y, 2); - } - Baz::Variant2 { field1, field2 } => { - let _x: &mut Pin<&mut i32> = field1; - let _y: &mut &mut i32 = field2; - } - Baz::None => {} - } - - let () = #[project] - match &mut baz { - Baz::Variant1(x, y) => { - let x: &mut Pin<&mut i32> = x; - assert_eq!(**x, 1); - - let y: &mut &mut i32 = y; - assert_eq!(**y, 2); - } - Baz::Variant2 { field1, field2 } => { - let _x: &mut Pin<&mut i32> = field1; - let _y: &mut &mut i32 = field2; - } - Baz::None => {} - }; -} - -fn main() {} |