about summary refs log tree commit diff
path: root/tests/ui/coherence/orphan-check-projections-nested.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/coherence/orphan-check-projections-nested.rs')
-rw-r--r--tests/ui/coherence/orphan-check-projections-nested.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/ui/coherence/orphan-check-projections-nested.rs b/tests/ui/coherence/orphan-check-projections-nested.rs
new file mode 100644
index 00000000000..ec244a8005b
--- /dev/null
+++ b/tests/ui/coherence/orphan-check-projections-nested.rs
@@ -0,0 +1,23 @@
+// This used to ICE in an earlier iteration of #117164. Minimized from crate `proqnt`.
+
+//@ check-pass
+//@ revisions: classic next
+//@[next] compile-flags: -Znext-solver
+//@ aux-crate:dep=trait-with-assoc-ty.rs
+//@ edition: 2021
+
+pub(crate) trait Trait<T> {
+    type Assoc;
+}
+
+pub(crate) struct Type<T, U, V>(T, U, V);
+
+impl<T, U> dep::Trait for Type<T, <<T as dep::Trait>::Assoc as Trait<U>>::Assoc, U>
+where
+    T: dep::Trait,
+    <T as dep::Trait>::Assoc: Trait<U>,
+{
+    type Assoc = U;
+}
+
+fn main() {}