diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2013-06-19 12:32:56 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2013-07-01 20:43:55 -0400 |
| commit | 4a0469e3d70868db7ab27841e57080cff8e546b3 (patch) | |
| tree | 4966291ab6f65746b8e806ce93c2aeb9048cdae9 | |
| parent | e416c9fa17b6b6668e2c2b0b619466840a810931 (diff) | |
| download | rust-4a0469e3d70868db7ab27841e57080cff8e546b3.tar.gz rust-4a0469e3d70868db7ab27841e57080cff8e546b3.zip | |
Add copyright notice and kill broken test
| -rw-r--r-- | src/librustc/middle/typeck/infer/doc.rs | 10 | ||||
| -rw-r--r-- | src/test/compile-fail/regions-free-region-ordering-incorrect.rs (renamed from src/test/run-pass/issue-4325.rs) | 11 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/librustc/middle/typeck/infer/doc.rs b/src/librustc/middle/typeck/infer/doc.rs index 16d0f2cc18b..11bfbc63716 100644 --- a/src/librustc/middle/typeck/infer/doc.rs +++ b/src/librustc/middle/typeck/infer/doc.rs @@ -1,3 +1,13 @@ +// 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 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + /*! # Type inference engine diff --git a/src/test/run-pass/issue-4325.rs b/src/test/compile-fail/regions-free-region-ordering-incorrect.rs index 8e65c15f1c4..c2bd64fddaf 100644 --- a/src/test/run-pass/issue-4325.rs +++ b/src/test/compile-fail/regions-free-region-ordering-incorrect.rs @@ -8,16 +8,23 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +// Test that free regions ordering only goes one way. That is, +// we have `&'a Node<'self, T>`, which implies that `'a <= 'self`, +// but not `'self <= 'a`. Hence returning `&self.val` (which has lifetime +// `'a`) where `'self` is expected yields an error. +// +// This test began its life as a test for issue #4325. + struct Node<'self, T> { val: T, next: Option<&'self Node<'self, T>> } impl<'self, T> Node<'self, T> { - fn get(&self) -> &'self T { + fn get<'a>(&'a self) -> &'self T { match self.next { Some(ref next) => next.get(), - None => &self.val + None => &self.val //~ ERROR cannot infer an appropriate lifetime } } } |
