8374: Intern TypeRefs stored in Body r=jonas-schievink a=jonas-schievink
Minor improvement to memory usage (1 MB or so)
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
8364: Memory usage improvements r=jonas-schievink a=alexmaco
These are mostly focused on splitting up enum variants with large size differences between variants by `Box`-ing things up.
In my testing this reduces the memory usage somewhere in the low percentages, even though the measurements are quite noisy.
Co-authored-by: Alexandru Macovei <alexnmaco@gmail.com>
Rationale: only a minority of variants used almost half the size.
By keeping large members (especially in Option) behind a box
the memory cost is only payed when the large variants are needed.
This reduces the size Vec<Expr> needs to allocate.
8355: internal: do not drop errors from cargo metadata/check r=matklad a=matklad
Work towards #3155
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
8360: Fix shifting of binders in FnPointer r=flodiebold a=flodiebold
- don't shift in/out for Chalk mapping (we want to have the same binders now)
- do shift in when creating the signature for a closure (though it shouldn't matter much)
- do shift in when lowering a `fn()` type
- correctly deal with the implied binder in TypeWalk
Tested with the binders validator on various repos, so I'm pretty sure this doesn't mess things up 😬
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
- don't shift in/out for Chalk mapping (we want to have the same
binders now)
- do shift in when creating the signature for a closure (though it
shouldn't matter much)
- do shift in when lowering a `fn()` type
- correctly deal with the implied binder in TypeWalk
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>