about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-09-23 07:15:55 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2022-09-23 07:15:55 +0000
commite9d219e97c9b87e928d131ac071fef96e906c464 (patch)
tree0b5684fa5c6488653a0316bd5747439ca186890f
parent90ec6f847fe54e751a045044dabb7e0d252981e3 (diff)
downloadrust-e9d219e97c9b87e928d131ac071fef96e906c464.tar.gz
rust-e9d219e97c9b87e928d131ac071fef96e906c464.zip
Make the test actually show the problematic case
-rw-r--r--src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check.rs29
-rw-r--r--src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check.stderr9
2 files changed, 19 insertions, 19 deletions
diff --git a/src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check.rs b/src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check.rs
index a2063cf5e3e..b6a7264a529 100644
--- a/src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check.rs
+++ b/src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check.rs
@@ -1,18 +1,27 @@
-trait Mirror<'a> {
-    type Item;
-}
+#![feature(type_alias_impl_trait)]
+
+// known-bug: #99840
+// this should not compile
+// check-pass
+
+type Alias = impl Sized;
 
-impl<'a, T> Mirror<'a> for T {
-    type Item = T;
+fn constrain() -> Alias {
+    1i32
 }
 
-trait AnotherTrait {
-    type Blah;
+trait HideIt {
+    type Assoc;
 }
 
-impl<'a> AnotherTrait for <u32 as Mirror<'a>>::Item {
-    //~^ ERROR: the lifetime parameter `'a` is not constrained
-    type Blah = &'a u32;
+impl HideIt for () {
+    type Assoc = Alias;
 }
 
+pub trait Yay {}
+
+impl Yay for <() as HideIt>::Assoc {}
+// impl Yay for i32 {} // this already errors
+// impl Yay for u32 {} // this also already errors
+
 fn main() {}
diff --git a/src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check.stderr b/src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check.stderr
deleted file mode 100644
index cadf2ce4a9d..00000000000
--- a/src/test/ui/type-alias-impl-trait/implied_lifetime_wf_check.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/implied_lifetime_wf_check.rs:13:6
-   |
-LL | impl<'a> AnotherTrait for <u32 as Mirror<'a>>::Item {
-   |      ^^ unconstrained lifetime parameter
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0207`.