about summary refs log tree commit diff
path: root/tests/ui
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui')
-rw-r--r--tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.nn.stderr12
-rw-r--r--tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.ny.stderr12
-rw-r--r--tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.rs3
-rw-r--r--tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.yn.stderr12
-rw-r--r--tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.yy.stderr12
-rw-r--r--tests/ui/traits/next-solver/typeck/receiver-self-ty-check-eq.rs23
6 files changed, 25 insertions, 49 deletions
diff --git a/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.nn.stderr b/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.nn.stderr
deleted file mode 100644
index 03536dca1e8..00000000000
--- a/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.nn.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0271]: type mismatch resolving `<() as Index>::Output == &mut <() as Index>::Output`
-  --> $DIR/issue-100222.rs:34:12
-   |
-LL |     fn foo(&mut self, x: <Self as Index>::Output) -> <Self as Index>::Output
-   |            ^^^^^^^^^ expected `()`, found `&mut <() as Index>::Output`
-   |
-   = note:      expected unit type `()`
-           found mutable reference `&mut <() as Index>::Output`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0271`.
diff --git a/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.ny.stderr b/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.ny.stderr
deleted file mode 100644
index 6a70a503606..00000000000
--- a/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.ny.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0271]: type mismatch resolving `<() as Index>::Output == &mut <() as Index>::Output`
-  --> $DIR/issue-100222.rs:25:12
-   |
-LL |     fn foo(&mut self, x: <Self as Index>::Output) -> <Self as Index>::Output
-   |            ^^^^^^^^^ expected `()`, found `&mut <() as Index>::Output`
-   |
-   = note:      expected unit type `()`
-           found mutable reference `&mut <() as Index>::Output`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0271`.
diff --git a/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.rs b/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.rs
index 7949772a2b4..47f9fc664ce 100644
--- a/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.rs
+++ b/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.rs
@@ -1,6 +1,7 @@
 //@ revisions: nn ny yn yy
-//@ known-bug: #110395
 //@ compile-flags: -Znext-solver
+//@ check-pass
+
 #![allow(incomplete_features)]
 #![feature(const_trait_impl, effects, associated_type_defaults, const_mut_refs)]
 
diff --git a/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.yn.stderr b/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.yn.stderr
deleted file mode 100644
index 03536dca1e8..00000000000
--- a/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.yn.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0271]: type mismatch resolving `<() as Index>::Output == &mut <() as Index>::Output`
-  --> $DIR/issue-100222.rs:34:12
-   |
-LL |     fn foo(&mut self, x: <Self as Index>::Output) -> <Self as Index>::Output
-   |            ^^^^^^^^^ expected `()`, found `&mut <() as Index>::Output`
-   |
-   = note:      expected unit type `()`
-           found mutable reference `&mut <() as Index>::Output`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0271`.
diff --git a/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.yy.stderr b/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.yy.stderr
deleted file mode 100644
index 6a70a503606..00000000000
--- a/tests/ui/rfcs/rfc-2632-const-trait-impl/issue-100222.yy.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0271]: type mismatch resolving `<() as Index>::Output == &mut <() as Index>::Output`
-  --> $DIR/issue-100222.rs:25:12
-   |
-LL |     fn foo(&mut self, x: <Self as Index>::Output) -> <Self as Index>::Output
-   |            ^^^^^^^^^ expected `()`, found `&mut <() as Index>::Output`
-   |
-   = note:      expected unit type `()`
-           found mutable reference `&mut <() as Index>::Output`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0271`.
diff --git a/tests/ui/traits/next-solver/typeck/receiver-self-ty-check-eq.rs b/tests/ui/traits/next-solver/typeck/receiver-self-ty-check-eq.rs
new file mode 100644
index 00000000000..f8c8a17b7e5
--- /dev/null
+++ b/tests/ui/traits/next-solver/typeck/receiver-self-ty-check-eq.rs
@@ -0,0 +1,23 @@
+//@ compile-flags: -Znext-solver
+//@ check-pass
+
+// Fixes a regression in `receiver_is_valid` in wfcheck where we were using
+// `InferCtxt::can_eq` instead of processing alias-relate goals, leading to false
+// positives, not deref'ing enough steps to check the receiver is valid.
+
+trait Mirror {
+    type Mirror: ?Sized;
+}
+impl<T: ?Sized> Mirror for T {
+    type Mirror = T;
+}
+
+trait Foo {
+    fn foo(&self) {}
+}
+
+impl Foo for <() as Mirror>::Mirror {
+    fn foo(&self) {}
+}
+
+fn main() {}