Closed lowr closed 1 year ago
@bors r+
:pushpin: Commit aa036e6c3b654dd7062aa0e4c2893118f4234bf0 has been approved by jackh726
It is now in the queue for this repository.
:hourglass: Testing commit aa036e6c3b654dd7062aa0e4c2893118f4234bf0 with merge e7e15c3f5d0255036b0a7912319c24a46c046c30...
:sunny: Test successful - checks-actions Approved by: jackh726 Pushing e7e15c3f5d0255036b0a7912319c24a46c046c30 to master...
When an
AliasEq
goal contains another alias as its self type, we generate the following clause:<<X as Y>::A as Z>::B == U :- <T as Z>::B == U, <X as Y>::A == T
, withT
being a new variable. We've been building<T as Z>::B
by swapping the first argument in the original projection's substitution withT
, but it's not the self type when the associated typeB
has generic parameters, leading to wrong subgoals.The added test would yield "No possible solution" in current master.
Also removes
ignore
attribute on a doctest that was added in #778 as GATs hit stable.Spotted in rust-lang/rust-analyzer#14164.