summaryrefslogtreecommitdiffstats
path: root/src/test/ui/object-lifetime/object-lifetime-default-ambiguous.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/object-lifetime/object-lifetime-default-ambiguous.rs')
-rw-r--r--src/test/ui/object-lifetime/object-lifetime-default-ambiguous.rs48
1 files changed, 0 insertions, 48 deletions
diff --git a/src/test/ui/object-lifetime/object-lifetime-default-ambiguous.rs b/src/test/ui/object-lifetime/object-lifetime-default-ambiguous.rs
deleted file mode 100644
index 5dae92fee..000000000
--- a/src/test/ui/object-lifetime/object-lifetime-default-ambiguous.rs
+++ /dev/null
@@ -1,48 +0,0 @@
-// Test that if a struct declares multiple region bounds for a given
-// type parameter, an explicit lifetime bound is required on object
-// lifetimes within.
-
-#![allow(dead_code)]
-
-trait Test {
- fn foo(&self) { }
-}
-
-struct Ref0<T:?Sized> {
- r: *mut T
-}
-
-struct Ref1<'a,T:'a+?Sized> {
- r: &'a T
-}
-
-struct Ref2<'a,'b:'a,T:'a+'b+?Sized> {
- r: &'a &'b T
-}
-
-fn a<'a,'b>(t: Ref2<'a,'b, dyn Test>) {
- //~^ ERROR lifetime bound for this object type cannot be deduced from context
-}
-
-fn b(t: Ref2<dyn Test>) {
- //~^ ERROR lifetime bound for this object type cannot be deduced from context
-}
-
-fn c(t: Ref2<&dyn Test>) {
- // In this case, the &'a overrides.
-}
-
-fn d(t: Ref2<Ref1<dyn Test>>) {
- // In this case, the lifetime parameter from the Ref1 overrides.
-}
-
-fn e(t: Ref2<Ref0<dyn Test>>) {
- // In this case, Ref2 is ambiguous, but Ref0 overrides with 'static.
-}
-
-fn f(t: &Ref2<dyn Test>) {
- //~^ ERROR lifetime bound for this object type cannot be deduced from context
-}
-
-fn main() {
-}