diff options
Diffstat (limited to 'src/test/ui/nll/rc-loop.rs')
-rw-r--r-- | src/test/ui/nll/rc-loop.rs | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/src/test/ui/nll/rc-loop.rs b/src/test/ui/nll/rc-loop.rs deleted file mode 100644 index e59303d1f..000000000 --- a/src/test/ui/nll/rc-loop.rs +++ /dev/null @@ -1,28 +0,0 @@ -// run-pass - -// A test for something that NLL enables. It sometimes happens that -// the `while let` pattern makes some borrows from a variable (in this -// case, `x`) that you need in order to compute the next value for -// `x`. The lexical checker makes this very painful. The NLL checker -// does not. - -use std::rc::Rc; - -#[derive(Debug, PartialEq, Eq)] -enum Foo { - Base(usize), - Next(Rc<Foo>), -} - -fn find_base(mut x: Rc<Foo>) -> Rc<Foo> { - while let Foo::Next(n) = &*x { - x = n.clone(); - } - x -} - -fn main() { - let chain = Rc::new(Foo::Next(Rc::new(Foo::Base(44)))); - let base = find_base(chain); - assert_eq!(&*base, &Foo::Base(44)); -} |