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
A-tytype system / type inference / traits / method resolutionC-bugCategory: bugS-blockedStatus: marked as blocked ❌ on something else such as an RFC or other implementation work.
8051Enthusiast
changed the title
false report of "missing match arm" matching on associated type
false report of "missing match arm" when matching on nested pattern with unknown type
Feb 16, 2023
lowr
added
the
A-ty
type system / type inference / traits / method resolution
label
Feb 16, 2023
Fix projection substitution order considering GATs
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`, with `T` being a new variable. We've been building `<T as Z>::B` by swapping the first argument in the original projection's substitution with `T`, but it's not the self type when the associated type `B` 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.
A-tytype system / type inference / traits / method resolutionC-bugCategory: bugS-blockedStatus: marked as blocked ❌ on something else such as an RFC or other implementation work.
rust-analyzer version:
0.3.1402
rustc version:
1.69.0-nightly (2d14db321 2023-02-15)
,rustc 1.67.1 (d5a82bbd2 2023-02-07)
relevant settings: uses vs code with fairly standard settings
somewhat minimized example
rust-analyzer reports
missing match arm: ExpressionHead(_) not covered
on the match in line 41 even though it is covered.writing
instead makes the error disappear.
The text was updated successfully, but these errors were encountered: