8356: Align more methods to Chalk r=flodiebold a=flodiebold
Related to #8313.
Move some inherent methods that don't exist in Chalk to an extension trait, remove some others.
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
8353: Replace hir_ty::Lifetime with chalk equivalent r=flodiebold a=Veykril
Our `Lifetime` isn't really used yet so this is a rather simple change
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
8352: Remove dead legacy macro expansion code r=lnicola a=brandondong
I was investigating some unrelated macro issue when I noticed this dead code. This legacy macro expansion logic was changed in https://github.com/rust-analyzer/rust-analyzer/pull/8128.
Co-authored-by: Brandon <brandondong604@hotmail.com>
8351: Use more assoc. type aliases in the chalk interner r=flodiebold a=jonas-schievink
Makes it sligthly easier to swap out these types
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
8350: internal: prepare to store OpQueue results in the queue itself r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
8348: Make `Binders` more like Chalk r=flodiebold a=flodiebold
Working towards #8313.
- hide `value`
- use `VariableKinds`
- adjust `subst` to be like Chalk's `substitute`
- also clean up some other `TypeWalk` stuff to prepare for it being replaced by Chalk's `Fold`
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
8245: Properly resolve intra doc links in hover and goto_definition r=matklad a=Veykril
Unfortunately involves a bit of weird workarounds due to pulldown_cmark's incorrect lifetimes on `BrokenLinkCallback`... I should probably open an issue there asking for the fixes to be pushed to a release since they already exist in the repo for quite some time it seems.
Fixes#8258, Fixes#8238
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
8326: Rewrite reorder fields assist to use mutable syntax trees r=matklad a=Veykril
This also instead uses `Either` to use the typed `RecordPat` and `RecordExpr` nodes, this unfortunately gives a bit of code duplication
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
8334: Intern and shrink more data to reduce memory usage r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
8333: analysis-stats: allow skipping type inference r=jonas-schievink a=jonas-schievink
This removes "noise" from memory profiles since it avoids lowering
function bodies and types
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
8332: Error when `rustfmt` component is unavailable r=jonas-schievink a=jonas-schievink
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8331
When the toolchain has no installable rustfmt component, running `rustfmt` complains with
```
error: the 'rustfmt' component which provides the command 'rustfmt' is not available for the 'nightly-2021-04-04-x86_64-unknown-linux-gnu' toolchain
```
Check for occurrence of "not available" in addition to the existing "not installed" to detect this case and report a user-visible error.
rustfmt and/or rustup should *really* be changed to not use the same exit status here
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>