about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorDylan DPC <99973273+Dylan-DPC@users.noreply.github.com>2022-08-22 20:34:13 +0530
committerGitHub <noreply@github.com>2022-08-22 20:34:13 +0530
commit14c8a68e49aee6aaa095f0bfdbe441c20c1a3dd8 (patch)
treee61b6ae3ea7c5237b0ea3d912a4b9980080abcad /src
parent382ba73062e6ea48dbdd3fab623d4c530ea9a476 (diff)
parentf1db3be9cf9a7efff0db8195e245dcfea16cb233 (diff)
downloadrust-14c8a68e49aee6aaa095f0bfdbe441c20c1a3dd8.tar.gz
rust-14c8a68e49aee6aaa095f0bfdbe441c20c1a3dd8.zip
Rollup merge of #100336 - fee1-dead-contrib:fix-wf-const-trait, r=oli-obk
Fix two const_trait_impl issues

r? ``@oli-obk``

Fixes #100222.
Fixes #100543.
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/rfc-2632-const-trait-impl/issue-100222.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/test/ui/rfc-2632-const-trait-impl/issue-100222.rs b/src/test/ui/rfc-2632-const-trait-impl/issue-100222.rs
new file mode 100644
index 00000000000..1004bb28c59
--- /dev/null
+++ b/src/test/ui/rfc-2632-const-trait-impl/issue-100222.rs
@@ -0,0 +1,29 @@
+// revisions: nn ny yn yy
+// check-pass
+#![feature(const_trait_impl, associated_type_defaults, const_mut_refs)]
+
+#[cfg_attr(any(yn, yy), const_trait)]
+pub trait Index {
+    type Output;
+}
+
+#[cfg_attr(any(ny, yy), const_trait)]
+pub trait IndexMut where Self: Index {
+    const C: <Self as Index>::Output;
+    type Assoc = <Self as Index>::Output;
+    fn foo(&mut self, x: <Self as Index>::Output) -> <Self as Index>::Output;
+}
+
+impl Index for () { type Output = (); }
+
+impl const IndexMut for <() as Index>::Output {
+    const C: <Self as Index>::Output = ();
+    type Assoc = <Self as Index>::Output;
+    fn foo(&mut self, x: <Self as Index>::Output) -> <Self as Index>::Output
+        where <Self as Index>::Output:,
+    {}
+}
+
+const C: <() as Index>::Output = ();
+
+fn main() {}