You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've tried to solve it. One aspect that I've found that for any tuple facts about it's members were missing, like the fact of aliasing AnonParam and Param. Unfortunately it was not enough to guide the solver. I think the problem is in trying to prove for<type, type> Implemented(<<Exact<Uint(Usize)> as FilterBase>::Extract as Tuple>::HList: Combine<<<^0.0 as FilterBase>::Extract as Tuple>::HList>) :- Implemented(^0.1: Combine<<<^0.0 as FilterBase>::Extract as Tuple>::HList>), AliasEq(<<Exact<Uint(Usize)> as FilterBase>::Extract as Tuple>::HList = ^0.1) roughly reading that for some ^0.1 that is ^0.0...HList for some ^0.0 such ^0.1 is itself a HList for Exact<Uint(Usize)>. Logically we should normalize <Exact<Uint(Usize)> as FilterBase>::Extract as Tuple>::HList immediately and check for all available implementations for concrete substitution of ^0.1. But solver goes some other way for<type, type> AliasEq(<<Exact<Uint(Usize)> as FilterBase>::Extract as Tuple>::HList = ^0.0) :- AliasEq(<^0.1 as Tuple>::HList = ^0.0), AliasEq(<Exact<Uint(Usize)> as FilterBase>::Extract = ^0.1) that makes more substitutions and while it's formally correct it's kind of road to nowhere.
This chalk test fails:
The second goal should succeed, however it fails with "No possible solution".
Ref: rust-lang/rust-analyzer#4774
The text was updated successfully, but these errors were encountered: