diff options
| author | bors <bors@rust-lang.org> | 2015-07-18 11:02:58 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2015-07-18 11:02:58 +0000 |
| commit | a27fed7cbd9d5e2a2f025c226dd48bb0c4bbbb20 (patch) | |
| tree | 6c6640a9e220530affb4994c149c1c07ce7df822 /src/test/compile-fail | |
| parent | e0e18598198a4a370547d3ec65bc21219df81371 (diff) | |
| parent | d088db99a7c67bebb00c2d66bfaf9cb64298fba2 (diff) | |
| download | rust-a27fed7cbd9d5e2a2f025c226dd48bb0c4bbbb20.tar.gz rust-a27fed7cbd9d5e2a2f025c226dd48bb0c4bbbb20.zip | |
Auto merge of #27096 - apasel422:issue-26217, r=nikomatsakis
closes #26217 r? @nikomatsakis
Diffstat (limited to 'src/test/compile-fail')
| -rw-r--r-- | src/test/compile-fail/hrtb-type-outlives.rs | 59 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-26217.rs | 16 |
2 files changed, 16 insertions, 59 deletions
diff --git a/src/test/compile-fail/hrtb-type-outlives.rs b/src/test/compile-fail/hrtb-type-outlives.rs deleted file mode 100644 index 7bb74d6b03a..00000000000 --- a/src/test/compile-fail/hrtb-type-outlives.rs +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2014 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. - -// Test what happens when a HR obligation is applied to an impl with -// "outlives" bounds. Currently we're pretty conservative here; this -// will probably improve in time. - -trait Foo<X> { - fn foo(&self, x: X) { } -} - -fn want_foo<T>() - where T : for<'a> Foo<&'a isize> -{ -} - -/////////////////////////////////////////////////////////////////////////// -// Expressed as a where clause - -struct SomeStruct<X> { - x: X -} - -impl<'a,X> Foo<&'a isize> for SomeStruct<X> - where X : 'a -{ -} - -fn one() { - // In fact there is no good reason for this to be an error, but - // whatever, I'm mostly concerned it doesn't ICE right now: - want_foo::<SomeStruct<usize>>(); - //~^ ERROR requirement `for<'a> usize : 'a` is not satisfied -} - -/////////////////////////////////////////////////////////////////////////// -// Expressed as shorthand - -struct AnotherStruct<X> { - x: X -} - -impl<'a,X:'a> Foo<&'a isize> for AnotherStruct<X> -{ -} - -fn two() { - want_foo::<AnotherStruct<usize>>(); - //~^ ERROR requirement `for<'a> usize : 'a` is not satisfied -} - -fn main() { } diff --git a/src/test/compile-fail/issue-26217.rs b/src/test/compile-fail/issue-26217.rs new file mode 100644 index 00000000000..06a8fe52588 --- /dev/null +++ b/src/test/compile-fail/issue-26217.rs @@ -0,0 +1,16 @@ +// Copyright 2015 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. + +fn foo<T>() where for<'a> T: 'a {} + +fn main<'a>() { + foo::<&'a i32>(); + //~^ ERROR the type `&'a i32` does not fulfill the required lifetime +} |
