diff options
Diffstat (limited to 'src/test/ui/variance/variance-issue-20533.rs')
-rw-r--r-- | src/test/ui/variance/variance-issue-20533.rs | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/src/test/ui/variance/variance-issue-20533.rs b/src/test/ui/variance/variance-issue-20533.rs deleted file mode 100644 index a2459f873..000000000 --- a/src/test/ui/variance/variance-issue-20533.rs +++ /dev/null @@ -1,43 +0,0 @@ -// Regression test for issue #20533. At some point, only 1 out of the -// 3 errors below were being reported. - -use std::marker::PhantomData; - -fn foo<'a, T>(_x: &'a T) -> PhantomData<&'a ()> { - PhantomData -} - -struct Wrap<T>(T); - -fn bar<'a, T>(_x: &'a T) -> Wrap<PhantomData<&'a ()>> { - Wrap(PhantomData) -} - -struct Baked<'a>(PhantomData<&'a ()>); - -fn baz<'a, T>(_x: &'a T) -> Baked<'a> { - Baked(PhantomData) -} - -struct AffineU32(u32); - -fn main() { - { - let a = AffineU32(1); - let x = foo(&a); - drop(a); //~ ERROR cannot move out of `a` - drop(x); - } - { - let a = AffineU32(1); - let x = bar(&a); - drop(a); //~ ERROR cannot move out of `a` - drop(x); - } - { - let a = AffineU32(1); - let x = baz(&a); - drop(a); //~ ERROR cannot move out of `a` - drop(x); - } -} |