Skip to content

Commit

Permalink
Regression test for #22323.
Browse files Browse the repository at this point in the history
  • Loading branch information
pnkfelix committed Sep 19, 2018
1 parent 1e21c9a commit 3feffd4
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions src/test/ui/nll/issue-22323-temp-destruction.rs
Original file line number Diff line number Diff line change
@@ -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) {} }

0 comments on commit 3feffd4

Please sign in to comment.