From e237aaef25db05a7f18c1a32b248fdaa06ff8669 Mon Sep 17 00:00:00 2001 From: Oli Scherer Date: Fri, 23 Sep 2022 07:18:33 +0000 Subject: [PATCH] Some test cleanups --- compiler/rustc_typeck/src/outlives/utils.rs | 2 +- .../ui/generic-associated-types/issue-86218-2.rs | 1 - .../implied_lifetime_wf_check2.rs | 13 ------------- .../type-alias-impl-trait/unbounded_opaque_type.rs | 6 ++++++ 4 files changed, 7 insertions(+), 15 deletions(-) delete mode 100644 src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check2.rs diff --git a/compiler/rustc_typeck/src/outlives/utils.rs b/compiler/rustc_typeck/src/outlives/utils.rs index f582fdf903d..0409c7081dc 100644 --- a/compiler/rustc_typeck/src/outlives/utils.rs +++ b/compiler/rustc_typeck/src/outlives/utils.rs @@ -105,7 +105,7 @@ pub(crate) fn insert_outlives_predicate<'tcx>( // struct Ss<'a, T>(&'a Opaque); // ``` // - // Here we want to require an explicit `where Opaque: 'a` + // Here we want to have an implied bound `Opaque: 'a` let ty = tcx.mk_opaque(def_id, substs); required_predicates diff --git a/src/test/ui/generic-associated-types/issue-86218-2.rs b/src/test/ui/generic-associated-types/issue-86218-2.rs index 897836af6b0..63c839ea871 100644 --- a/src/test/ui/generic-associated-types/issue-86218-2.rs +++ b/src/test/ui/generic-associated-types/issue-86218-2.rs @@ -17,7 +17,6 @@ trait Yay { impl Yay for () { type InnerStream<'s> = impl Stream + 's; - //^ ERROR does not fulfill the required lifetime fn foo<'s>() -> Self::InnerStream<'s> { () } } diff --git a/src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check2.rs b/src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check2.rs deleted file mode 100644 index 4f52f7a34af..00000000000 --- a/src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check2.rs +++ /dev/null @@ -1,13 +0,0 @@ -#![feature(type_alias_impl_trait)] - -// check-pass - -trait Tr { type Assoc; } -impl<'a> Tr for &'a str { type Assoc = &'a str; } - -type OpaqueTy<'a> = impl Tr; -fn defining(s: &str) -> OpaqueTy<'_> { s } - -// now we must be able to conclude `'a: 'static` from `Opaque<'a>: 'static` - -fn main() {} diff --git a/src/test/ui/type-alias-impl-trait/unbounded_opaque_type.rs b/src/test/ui/type-alias-impl-trait/unbounded_opaque_type.rs index a5ab3e1acae..f43ad7dce1d 100644 --- a/src/test/ui/type-alias-impl-trait/unbounded_opaque_type.rs +++ b/src/test/ui/type-alias-impl-trait/unbounded_opaque_type.rs @@ -5,4 +5,10 @@ type Opaque = impl Sized; fn defining() -> Opaque {} struct Ss<'a, T>(&'a Opaque); + +fn test<'a, T>(_: Ss<'a, T>) { + // test that we have an implied bound `Opaque: 'a` from fn signature + None::<&'a Opaque>; +} + fn main() {}