diff options
Diffstat (limited to 'tests/ui/traits/new-solver/equating-projection-cyclically.rs')
-rw-r--r-- | tests/ui/traits/new-solver/equating-projection-cyclically.rs | 28 |
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); -} |