aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* internal: explain "extract if condition" refactoringAleksey Kladov2021-04-052-10/+29
|
* Merge #8334bors[bot]2021-04-0512-99/+75
|\ | | | | | | | | | | | | | | 8334: Intern and shrink more data to reduce memory usage r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * simplify visibility.rsJonas Schievink2021-04-051-3/+3
| |
| * Intern `GenericParams`Jonas Schievink2021-04-059-82/+47
| | | | | | | | | | Also share the same instance between `ItemTree` and `generic_params` query.
| * Add `GenericParams::shrink_to_fit`Jonas Schievink2021-04-052-0/+10
| | | | | | | | Reduces memory usage by over 10 MB
| * Intern more `TypeRef`s in genericsJonas Schievink2021-04-054-14/+15
|/ | | | Saves ~3 MB
* Merge #8333bors[bot]2021-04-053-22/+42
|\ | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * analysis-stats: allow skipping type inferenceJonas Schievink2021-04-053-22/+42
|/ | | | | This removes "noise" from memory profiles since it avoids lowering function bodies and types
* Merge #8332bors[bot]2021-04-041-1/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * Error when `rustfmt` component is unavailableJonas Schievink2021-04-041-1/+4
|/
* Merge #8329bors[bot]2021-04-041-2/+1
|\ | | | | | | | | | | | | | | 8329: docs: Fix moveItem method name r=lnicola a=simrat39 Co-authored-by: sim <[email protected]>
| * docs: Fix moveItem method namesim2021-04-041-2/+1
|/
* Merge #8328bors[bot]2021-04-0417-814/+855
|\ | | | | | | | | | | | | | | | | | | 8328: Move things in hir_ty into submodules r=flodiebold a=flodiebold - all the types that will be replaced by Chalk go to `types` - `TypeWalk` impls go to `walk` - also fix signature of `Substitution::interned` Co-authored-by: Florian Diebold <[email protected]>
| * Move things from `traits` module to `types` as wellFlorian Diebold2021-04-0412-110/+107
| |
| * Move things in hir_ty into submodulesFlorian Diebold2021-04-0411-707/+751
| | | | | | | | | | - all the types that will be replaced by Chalk go to `types` - `TypeWalk` impls go to `walk`
* | Merge #8325bors[bot]2021-04-045-34/+33
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 8325: Check if bitflags deps pulls its weight r=jonas-schievink a=matklad Bitflags is generally a good dependency -- it's lightweight, well maintained and embraced by the ecosystem. I wonder, however, do we really need it? Doesn't feel like it adds much to be honest. Co-authored-by: Aleksey Kladov <[email protected]>
| * Check if bitflags deps pulls its weightAleksey Kladov2021-04-045-34/+33
| | | | | | | | | | | | | | | | Bitflags is generally a good dependency -- it's lightweight, well maintained and embraced by the ecosystem. I wonder, however, do we really need it? Doesn't feel like it adds much to be honest.
* | Merge #8295bors[bot]2021-04-045-1/+398
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8295: Add `convert_into_to_from` assist r=Veykril a=obmarg This adds a "Convert Into to From" assist, useful since clippy has recently started adding lints on every `Into`. It covers converting the signature, and converting any `self`/`Self` references within the body. It does assume that every instance of `Into` can be converted to a `From`, which I _think_ is the case now. Let me know if there's something I'm not thinking of and I can try and make it smarter. Closes #8196 ![CleanShot 2021-04-02 at 13 39 54](https://user-images.githubusercontent.com/556490/113420108-9ce21c00-93c0-11eb-8c49-80b5fb189284.gif) I'm extremely new to this codebase so please let me know if anything needs changed. Co-authored-by: Graeme Coupar <[email protected]>
| * | Convert Into to From assistGraeme Coupar2021-04-035-1/+398
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a "Convert Into to From" assist, useful since clippy has recently started adding lints on every `Into`. It covers converting the signature, and converting any `self`/`Self` references within the body to the correct types. It does assume that every instance of `Into` can be converted to a `From`, which I _think_ is the case now. Let me know if there's something I'm not thinking of and I can try and make it smarter.
* | | Merge #8327bors[bot]2021-04-0420-373/+423
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | 8327: Move `Ty` creation methods out of `Ty` (Chalk move preparation) r=flodiebold a=flodiebold When we'll move to using `chalk_ir::Ty` (#8313), we won't be able to have our own inherent methods on `Ty` anymore, so we need to move the helpers elsewhere. This adds a `TyBuilder` that allows easily constructing `Ty` and related types (`TraitRef`, `ProjectionTy`, `Substitution`). It also replaces `SubstsBuilder`. `TyBuilder` can construct different things based on its type parameter; e.g. if it has an `AdtId`, we're constructing an ADT type, but if it has a `TraitId`, we're constructing a `TraitRef`. The common thing for all of them is that we need to build a `Substitution`, so the API stays the same for all of them except at the beginning and end. We also use `TyBuilder` to house various one-shot methods for constructing types, e.g. `TyBuilder::unit()`. Co-authored-by: Florian Diebold <[email protected]>
| * | Add commentFlorian Diebold2021-04-041-0/+3
| | |
| * | Replace Substitution::type_paramsFlorian Diebold2021-04-046-16/+15
| | |
| * | Replace Substitution::bound_vars and ::type_params_for_genericsFlorian Diebold2021-04-047-54/+42
| | |
| * | Move TyBuilder to its own moduleFlorian Diebold2021-04-042-204/+221
| | |
| * | Replace last uses of SubstsBuilder by TyBuilderFlorian Diebold2021-04-044-64/+23
| | |
| * | Remove CallableSig::from_substsFlorian Diebold2021-04-041-11/+1
| | |
| * | Use TyBuilder in another placeFlorian Diebold2021-04-041-4/+3
| | |
| * | Some more TyBuilder useFlorian Diebold2021-04-042-33/+25
| | |
| * | Replace remaining uses of Substitution::build_for_defFlorian Diebold2021-04-046-21/+46
| | |
| * | More TyBuilder useFlorian Diebold2021-04-041-12/+9
| | |
| * | More TyBuilder useFlorian Diebold2021-04-041-23/+15
| | |
| * | Add and start using TraitRef and ProjectionTy buildersFlorian Diebold2021-04-046-39/+48
| | |
| * | Move Ty::builtin to TyBuilderFlorian Diebold2021-04-043-20/+20
| | |
| * | Add TyBuilder::adtFlorian Diebold2021-04-044-45/+104
| | |
| * | Move Ty::fn_ptr to TyBuilderFlorian Diebold2021-04-042-11/+12
| | |
| * | Add TyBuilder::unit() and TyExt::is_unit()Florian Diebold2021-04-047-25/+39
| | |
| * | Add TyBuilderFlorian Diebold2021-04-041-0/+6
|/ /
* | Merge #8324bors[bot]2021-04-041-1/+11
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8324: Add `Body::shrink_to_fit` r=jonas-schievink a=jonas-schievink Saves ~15 MB bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Add `Body::shrink_to_fit`Jonas Schievink2021-04-041-1/+11
| | |
* | | Merge #8323bors[bot]2021-04-042-6/+8
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 8323: Only remember blocks that have a DefMap r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Only remember blocks that have a DefMapJonas Schievink2021-04-042-6/+8
|/ /
* | Merge #8322bors[bot]2021-04-044-5/+14
|\ \ | | | | | | | | | | | | | | | | | | | | | 8322: Access a body's block def maps via a method r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Access a body's block def maps via a methodJonas Schievink2021-04-044-5/+14
| | |
* | | Merge #8321bors[bot]2021-04-042-13/+38
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 8321: Use exhaustive matches in shrink_to_fit impls r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Use exhaustive matches in shrink_to_fit implsJonas Schievink2021-04-042-13/+38
|/ /
* | Merge #8320bors[bot]2021-04-0411-41/+32
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8320: Make `ast_to_token_tree` infallible r=jonas-schievink a=jonas-schievink It could never return `None`, so reflect that in the return type bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Make `ast_to_token_tree` infallibleJonas Schievink2021-04-0411-41/+32
|/ / | | | | | | It could never return `None`, so reflect that in the return type
* | Merge #8319bors[bot]2021-04-041-9/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8319: Glob-reexport hir_def database types r=jonas-schievink a=jonas-schievink Avoids having to constantly adjust this list bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Glob-reexport hir_def database typesJonas Schievink2021-04-041-9/+1
|/ /
* | Merge #8318bors[bot]2021-04-034-1/+48
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8318: Use shrink_to_fit to reduce DefMap sizes r=jonas-schievink a=jonas-schievink Especially `block_def_map` can overallocate when there's not a lot of items in the `DefMap`. This saves around 10 MB during analysis-stats. Not too much, but a cheap win. bors r+ Co-authored-by: Jonas Schievink <[email protected]>