diff options
| author | bors <bors@rust-lang.org> | 2018-09-27 12:35:36 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-09-27 12:35:36 +0000 |
| commit | c9865b1c37f8cb8a257591e6ea0b32a5df1f3d41 (patch) | |
| tree | cf3356d5d57d5f9b2e9087153db60f89b10f9697 | |
| parent | c4501a0f1d8dade87bfcdfd0102d96fb15b93713 (diff) | |
| parent | 3feffd48bd393f26639b6da127d8c43f4ce51d89 (diff) | |
| download | rust-c9865b1c37f8cb8a257591e6ea0b32a5df1f3d41.tar.gz rust-c9865b1c37f8cb8a257591e6ea0b32a5df1f3d41.zip | |
Auto merge of #54355 - pnkfelix:issue-22323-regression-test, r=davidtwco
NLL: regression test for "dropck: track order of destruction for r-value temporaries" Once this lands, we can remove the E-needstest from #22323. (We shouldn't close the bug itself, however, because we are leaving the NLL-fixed-by-NLL bugs open until NLL is turned on by default.)
| -rw-r--r-- | src/test/ui/nll/issue-22323-temp-destruction.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/test/ui/nll/issue-22323-temp-destruction.rs b/src/test/ui/nll/issue-22323-temp-destruction.rs new file mode 100644 index 00000000000..2c547fb7c7d --- /dev/null +++ b/src/test/ui/nll/issue-22323-temp-destruction.rs @@ -0,0 +1,32 @@ +// rust-lang/rust#22323: regression test demonstrating that NLL +// precisely tracks temporary destruction order. + +// compile-pass + +#![feature(nll)] + +fn main() { + let _s = construct().borrow().consume_borrowed(); +} + +fn construct() -> Value { Value } + +pub struct Value; + +impl Value { + fn borrow<'a>(&'a self) -> Borrowed<'a> { unimplemented!() } +} + +pub struct Borrowed<'a> { + _inner: Guard<'a, Value>, +} + +impl<'a> Borrowed<'a> { + fn consume_borrowed(self) -> String { unimplemented!() } +} + +pub struct Guard<'a, T: ?Sized + 'a> { + _lock: &'a T, +} + +impl<'a, T: ?Sized> Drop for Guard<'a, T> { fn drop(&mut self) {} } |
