ac1029fac3
feat!: create alias when renaming an import. ![gif](https://github.com/rust-lang/rust-analyzer/assets/57047985/c593d9a8-b8a0-4e13-9e50-a69c7d0d8749) Closes #15858 Implemented: - [x] - Prevent using `reserved` keywords (e.g self) and `_`. - [x] - Rename other modules that might be referencing the import. - [x] - Fix "broken" tests. - [ ] - Rename **only** "direct" references. - [ ] - Test more cases. Future possibilities: 1. Also support `extern crate <name>` syntax. 2. Allow aliasing `self` when it is inside an `UseTreeList`. ~3. If import path already has an alias, "rename" the alias.~ ~[4. Create alias even if path is not the last path segment.](https://github.com/rust-lang/rust-analyzer/pull/16489#issuecomment-1930541697)~