diff options
Diffstat (limited to 'tests/ui/coherence/orphan-check-projections-nested.rs')
| -rw-r--r-- | tests/ui/coherence/orphan-check-projections-nested.rs | 23 |
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() {} |
