diff options
Diffstat (limited to 'tests/ui/rfc-1445-restrict-constants-in-patterns/phantom-data-is-structurally-matchable.rs')
-rw-r--r-- | tests/ui/rfc-1445-restrict-constants-in-patterns/phantom-data-is-structurally-matchable.rs | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/tests/ui/rfc-1445-restrict-constants-in-patterns/phantom-data-is-structurally-matchable.rs b/tests/ui/rfc-1445-restrict-constants-in-patterns/phantom-data-is-structurally-matchable.rs deleted file mode 100644 index 50f91420c..000000000 --- a/tests/ui/rfc-1445-restrict-constants-in-patterns/phantom-data-is-structurally-matchable.rs +++ /dev/null @@ -1,53 +0,0 @@ -// run-pass - -// This file checks that `PhantomData` is considered structurally matchable. - -use std::marker::PhantomData; - -fn main() { - let mut count = 0; - - // A type which is not structurally matchable: - struct NotSM; - - // And one that is: - #[derive(PartialEq, Eq)] - struct SM; - - // Check that SM is structural-match: - const CSM: SM = SM; - match SM { - CSM => count += 1, - }; - - // Check that PhantomData<T> is structural-match even if T is not. - const CPD1: PhantomData<NotSM> = PhantomData; - match PhantomData { - CPD1 => count += 1, - }; - - // Check that PhantomData<T> is structural-match when T is. - const CPD2: PhantomData<SM> = PhantomData; - match PhantomData { - CPD2 => count += 1, - }; - - // Check that a type which has a PhantomData is structural-match. - #[derive(PartialEq, Eq, Default)] - struct Foo { - alpha: PhantomData<NotSM>, - beta: PhantomData<SM>, - } - - const CFOO: Foo = Foo { - alpha: PhantomData, - beta: PhantomData, - }; - - match Foo::default() { - CFOO => count += 1, - }; - - // Final count must be 4 now if all - assert_eq!(count, 4); -} |