summaryrefslogtreecommitdiffstats
path: root/src/test/ui/type-alias-impl-trait/closure_wf_outlives.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/type-alias-impl-trait/closure_wf_outlives.rs')
-rw-r--r--src/test/ui/type-alias-impl-trait/closure_wf_outlives.rs65
1 files changed, 0 insertions, 65 deletions
diff --git a/src/test/ui/type-alias-impl-trait/closure_wf_outlives.rs b/src/test/ui/type-alias-impl-trait/closure_wf_outlives.rs
deleted file mode 100644
index 53974dbb3..000000000
--- a/src/test/ui/type-alias-impl-trait/closure_wf_outlives.rs
+++ /dev/null
@@ -1,65 +0,0 @@
-// If the hidden type is a closure, we require the "outlives" bounds that appear on the
-// defining site to also appear on the opaque type.
-//
-// It's not clear if this is the desired behavior but at least
-// it's consistent and has no back-compat risk.
-
-// check-fail
-
-#![feature(type_alias_impl_trait)]
-#![allow(dead_code)]
-
-// requires `'a: 'b` bound
-mod test1 {
- type Opaque<'a, 'b> = impl Sized + 'a + 'b;
- //~^ ERROR lifetime bound not satisfied
-
- fn define<'a, 'b>() -> Opaque<'a, 'b>
- where
- 'a: 'b,
- {
- || {}
- }
-}
-
-// Same as the above but through indirection `'x`
-mod test2 {
- type Opaque<'a, 'b> = impl Sized + 'a + 'b;
- //~^ ERROR cannot infer an appropriate lifetime
-
- fn define<'a, 'b, 'x>() -> Opaque<'a, 'b>
- where
- 'a: 'x,
- 'x: 'b,
- {
- || {}
- }
-}
-
-// fixed version of the above
-mod test2_fixed {
- type Opaque<'a: 'b, 'b> = impl Sized + 'a + 'b;
-
- fn define<'a, 'b, 'x>() -> Opaque<'a, 'b>
- where
- 'a: 'x,
- 'x: 'b,
- {
- || {}
- }
-}
-
-// requires `T: 'static`
-mod test3 {
- type Opaque<T> = impl Sized;
- //~^ ERROR the parameter type `T` may not live long enough
-
- fn define<T>() -> Opaque<T>
- where
- T: 'static,
- {
- || {}
- }
-}
-
-fn main() {}