summaryrefslogtreecommitdiffstats
path: root/tests/ui/traits/new-solver/equating-projection-cyclically.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/traits/new-solver/equating-projection-cyclically.rs')
-rw-r--r--tests/ui/traits/new-solver/equating-projection-cyclically.rs28
1 files changed, 0 insertions, 28 deletions
diff --git a/tests/ui/traits/new-solver/equating-projection-cyclically.rs b/tests/ui/traits/new-solver/equating-projection-cyclically.rs
deleted file mode 100644
index 2668da1b7..000000000
--- a/tests/ui/traits/new-solver/equating-projection-cyclically.rs
+++ /dev/null
@@ -1,28 +0,0 @@
-// compile-flags: -Ztrait-solver=next
-
-trait Test {
- type Assoc;
-}
-
-fn transform<T: Test>(x: Inv<T>) -> Inv<T::Assoc> {
- todo!()
-}
-
-impl Test for i32 {
- type Assoc = i32;
-}
-
-impl Test for String {
- type Assoc = String;
-}
-
-struct Inv<T>(Option<*mut T>);
-
-fn main() {
- let mut x: Inv<_> = Inv(None);
- // This ends up equating `Inv<?x>` with `Inv<<?x as Test>::Assoc>`
- // which fails the occurs check when generalizing `?x`.
- x = transform(x);
- //~^ ERROR mismatched types
- x = Inv::<i32>(None);
-}