diff options
Diffstat (limited to 'tests/ui/borrowck/borrowck-struct-update-with-dtor.rs')
-rw-r--r-- | tests/ui/borrowck/borrowck-struct-update-with-dtor.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/ui/borrowck/borrowck-struct-update-with-dtor.rs b/tests/ui/borrowck/borrowck-struct-update-with-dtor.rs new file mode 100644 index 000000000..1f6ed6d46 --- /dev/null +++ b/tests/ui/borrowck/borrowck-struct-update-with-dtor.rs @@ -0,0 +1,21 @@ +// Issue 4691: Ensure that functional-struct-update can only copy, not +// move, when the struct implements Drop. + +struct B; +struct S { a: isize, b: B } +impl Drop for S { fn drop(&mut self) { } } + +struct T { a: isize, mv: Box<isize> } +impl Drop for T { fn drop(&mut self) { } } + +fn f(s0:S) { + let _s2 = S{a: 2, ..s0}; + //~^ ERROR [E0509] +} + +fn g(s0:T) { + let _s2 = T{a: 2, ..s0}; + //~^ ERROR [E0509] +} + +fn main() { } |