rust-analyzer version:
rust-analyzer 0.4.2892-standalone
rustc version:
rustc 1.97.0-nightly (36ba2c771 2026-04-23)
editor or extension: Vim
Related: #22285
Type::could_unify_with is a bit strange, cc @ChayimFriedman2
code snippet to reproduce:
struct S<T>(T);
fn foo<T>(s: &mut S<T>) {}
fn main() {
let mut ssss = S(2u32);
foo($0);
}
Before:
After:
&mut S(…)~ S(T)
&mut ssss~ S<u32>
&mut S~ S<{unknown}>
&mut Box~ Box<{unknown}, {unknown}>
None~ None
S(…)~ S(T)
Box should not appear, it may be strange for S~ to be added with 'ref match' and preferred
Expect:
&mut S(…)~ S(T)
&mut ssss~ S<u32>
None~ None
S(…)~ S(T)
rust-analyzer version:
rust-analyzer 0.4.2892-standalone
rustc version:
rustc 1.97.0-nightly (36ba2c771 2026-04-23)
editor or extension: Vim
Related: #22285
Type::could_unify_withis a bit strange, cc @ChayimFriedman2code snippet to reproduce:
Before:
After:
Boxshould not appear, it may be strange forS~to be added with 'ref match' and preferredExpect: