summaryrefslogtreecommitdiffstats
path: root/src/test/ui/regions/regions-implied-bounds-projection-gap-1.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/regions/regions-implied-bounds-projection-gap-1.rs')
-rw-r--r--src/test/ui/regions/regions-implied-bounds-projection-gap-1.rs30
1 files changed, 0 insertions, 30 deletions
diff --git a/src/test/ui/regions/regions-implied-bounds-projection-gap-1.rs b/src/test/ui/regions/regions-implied-bounds-projection-gap-1.rs
deleted file mode 100644
index 38fc9c462..000000000
--- a/src/test/ui/regions/regions-implied-bounds-projection-gap-1.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-// Illustrates the "projection gap": in this test, even though we know
-// that `T::Foo: 'x`, that does not tell us that `T: 'x`, because
-// there might be other ways for the caller of `func` to show that
-// `T::Foo: 'x` holds (e.g., where-clause).
-
-trait Trait1<'x> {
- type Foo;
-}
-
-// calling this fn should trigger a check that the type argument
-// supplied is well-formed.
-fn wf<T>() { }
-
-fn func<'x, T:Trait1<'x>>(t: &'x T::Foo)
-{
- wf::<&'x T>();
- //~^ ERROR the parameter type `T` may not live long enough
-}
-
-fn caller2<'x, T:Trait1<'x>>(t: &'x T)
-{
- wf::<&'x T::Foo>(); // OK
-}
-
-fn caller3<'x, T:Trait1<'x>>(t: &'x T::Foo)
-{
- wf::<&'x T::Foo>(); // OK
-}
-
-fn main() { }