<!-- Troubleshooting guide: https://rust-analyzer.github.io/manual.html#troubleshooting Forum for questions: https://users.rust-lang.org/c/ide/14 Before submitting, please make sure that you're not running into one of these known issues: 1. on-the-fly diagnostics are mostly unimplemented (`cargo check` diagnostics will be shown when saving a file): #3107 Otherwise please try to provide information which will help us to fix the issue faster. Minimal reproducible examples with few dependencies are especially lovely <3. --> **rust-analyzer version**: `rust-analyzer 1.77.0-nightly (bf8716f1 2023-12-24)` **rustc version**: `rustc 1.77.0-nightly (bf8716f1c 2023-12-24)` **editor or extension**: Vim 9.1 **code snippet to reproduce**: ```rust struct X<T>(T); impl<T> X<T> { fn foo(&self) {} } ``` **expect output** ```rust struct X<T>(T); impl<T> X<T> { fn foo(this: &Self) {} } ``` **failed output** ```rust struct X<T>(T); impl<T> X<T> { fn foo(this: &X) {} } ```