From 673d97e3ca764e4fd9a3c6389f5f0f2e19e0584d Mon Sep 17 00:00:00 2001 From: David Wood Date: Sat, 27 Jan 2018 20:15:18 +0000 Subject: [PATCH] Added tests for #47703 --- src/test/run-pass/issue-47703-1.rs | 33 ++++++++++++++++++++++++++++++ src/test/run-pass/issue-47703.rs | 28 +++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 src/test/run-pass/issue-47703-1.rs create mode 100644 src/test/run-pass/issue-47703.rs diff --git a/src/test/run-pass/issue-47703-1.rs b/src/test/run-pass/issue-47703-1.rs new file mode 100644 index 00000000000..facdee5cc17 --- /dev/null +++ b/src/test/run-pass/issue-47703-1.rs @@ -0,0 +1,33 @@ +// Copyright 2012 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(nll)] + +struct AtomicRefMut<'a> { + value: &'a mut i32, + borrow: AtomicBorrowRefMut, +} + +struct AtomicBorrowRefMut { +} + +impl Drop for AtomicBorrowRefMut { + fn drop(&mut self) { + } +} + +fn map(orig: AtomicRefMut) -> AtomicRefMut { + AtomicRefMut { + value: orig.value, + borrow: orig.borrow, + } +} + +fn main() {} diff --git a/src/test/run-pass/issue-47703.rs b/src/test/run-pass/issue-47703.rs new file mode 100644 index 00000000000..2146986377a --- /dev/null +++ b/src/test/run-pass/issue-47703.rs @@ -0,0 +1,28 @@ +// Copyright 2012 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(nll)] + +struct MyStruct<'a> { + field: &'a mut (), + field2: WithDrop +} + +struct WithDrop; + +impl Drop for WithDrop { + fn drop(&mut self) {} +} + +impl<'a> MyStruct<'a> { + fn consume(self) -> &'a mut () { self.field } +} + +fn main() {}