diff options
Diffstat (limited to 'tests/ui/project/type-mismatch.rs')
-rw-r--r-- | tests/ui/project/type-mismatch.rs | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/tests/ui/project/type-mismatch.rs b/tests/ui/project/type-mismatch.rs deleted file mode 100644 index 0e40c83..0000000 --- a/tests/ui/project/type-mismatch.rs +++ /dev/null @@ -1,72 +0,0 @@ -#![allow(deprecated)] -#![feature(proc_macro_hygiene, stmt_expr_attributes)] - -use pin_project::{pin_project, project}; -use std::pin::Pin; - -#[project] -fn type_mismatch() { - #[pin_project] - enum Enum<A, B, C, D> { - Variant1(#[pin] A, B), - Variant2 { - #[pin] - field1: C, - field2: D, - }, - None, - } - - let mut foo = Enum::Variant1(1, 2); - let mut foo = Pin::new(&mut foo).project(); - - #[project] - match &mut foo { - Enum::Variant1(x, y) => { - let x: &mut Pin<&mut i32> = x; - assert_eq!(**x, 1); - - let y: &mut &mut i32 = y; - assert_eq!(**y, 2); - } - Enum::Variant2 { field1, field2 } => { - let _x: &mut Pin<&mut i32> = field1; - let _y: &mut &mut i32 = field2; - } - None => {} //~ ERROR mismatched types - } -} - -fn type_mismatch_span_issue() { - #[pin_project] - enum Enum<A, B, C, D> { - Variant1(#[pin] A, B), - Variant2 { - #[pin] - field1: C, - field2: D, - }, - None, - } - - let mut foo = Enum::Variant1(1, 2); - let mut foo = Pin::new(&mut foo).project(); - - #[project] - match &mut foo { - Enum::Variant1(x, y) => { - let x: &mut Pin<&mut i32> = x; - assert_eq!(**x, 1); - - let y: &mut &mut i32 = y; - assert_eq!(**y, 2); - } - Enum::Variant2 { field1, field2 } => { - let _x: &mut Pin<&mut i32> = field1; - let _y: &mut &mut i32 = field2; - } - None => {} //~ ERROR mismatched types - } -} - -fn main() {} |