From b9920b052be7f1e7461e6d45cfdd7474f0046d50 Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Sun, 20 Jan 2013 19:47:42 -0800 Subject: [PATCH] testsuite: Tweak tests for #3888 --- .../{run-pass => compile-fail}/issue-3888.rs | 8 +++++--- src/test/run-pass/issue-3888-2.rs | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) rename src/test/{run-pass => compile-fail}/issue-3888.rs (74%) create mode 100644 src/test/run-pass/issue-3888-2.rs diff --git a/src/test/run-pass/issue-3888.rs b/src/test/compile-fail/issue-3888.rs similarity index 74% rename from src/test/run-pass/issue-3888.rs rename to src/test/compile-fail/issue-3888.rs index 393659f01ca..4f9cd28738a 100644 --- a/src/test/run-pass/issue-3888.rs +++ b/src/test/compile-fail/issue-3888.rs @@ -8,14 +8,16 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// xfail-test - +// n.b. This should be a run-pass test, but for now I'm testing +// that we don't see an "unknown scope" error. fn vec_peek(v: &r/[T]) -> Option< (&r/T, &r/[T]) > { if v.len() == 0 { None } else { + let vec_len = v.len(); let head = &v[0]; - let tail = v.view(1, v.len()); + // note: this *shouldn't* be an illegal borrow! See #3888 + let tail = v.view(1, vec_len); //~ ERROR illegal borrow: borrowed value does not live long enough Some( (head, tail) ) } } diff --git a/src/test/run-pass/issue-3888-2.rs b/src/test/run-pass/issue-3888-2.rs new file mode 100644 index 00000000000..f3a7840dce0 --- /dev/null +++ b/src/test/run-pass/issue-3888-2.rs @@ -0,0 +1,17 @@ +// 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. + +fn vec_peek(v: &r/[T]) -> &r/[T] { +// This doesn't work, and should. +// v.view(1, 5) + vec::view(v, 1, 5) +} + +fn main() {}