aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Make `ModPath`'s representation privateJonas Schievink2021-02-0418-51/+70
|
* Merge #7557bors[bot]2021-02-044-21/+67
|\ | | | | | | | | | | | | | | | | | | | | 7557: Intern `TypeRef`s in the containing `ItemTree` r=jonas-schievink a=jonas-schievink This reduces the memory used by `ItemTreeQuery` by ~20%. As it turns out, `TypeRef` is very heavy, and is used a lot in `ItemTree`: * Many types are frequently repeated throughout the same file. This is what this PR addresses by storing identical `TypeRef`s only once per `ItemTree`. * The vast majority of `TypeRef` consist of a plain path with only a single element. "Type anchors" like in `<Ty>::func` are used incredibly rarely, and even multi-segment paths are much rarer than single-segment paths. Co-authored-by: Jonas Schievink <[email protected]>
| * Intern `TypeRef`s in the containing `ItemTree`Jonas Schievink2021-02-044-21/+67
|/
* Merge #7555bors[bot]2021-02-042-14/+11
|\ | | | | | | | | | | | | | | | | | | | | 7555: Expander: store a LocalModuleId, not ModuleId r=jonas-schievink a=jonas-schievink It already stores the DefMap containing the module, so having a full ModuleId is unnecessary and makes it easier to mix things up bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Expander: store a LocalModuleId, not ModuleIdJonas Schievink2021-02-042-14/+11
|/ | | | | It already stores the DefMap containing the module, so having a full ModuleId is unnecessary and makes it easier to mix things up
* Merge #7554bors[bot]2021-02-045-36/+67
|\ | | | | | | | | | | | | | | | | | | | | 7554: Don't keep the parent DefMap alive via Arc r=jonas-schievink a=jonas-schievink This seems like it could easily leak a lot of memory since we don't currently run GC bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Don't keep the parent DefMap alive via ArcJonas Schievink2021-02-045-36/+67
|/ | | | | This seems like it could easily leak a lot of memory since we don't currently run GC
* Merge #7553bors[bot]2021-02-041-2/+42
|\ | | | | | | | | | | | | | | | | 7553: More architecture.md r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * More architecture.mdAleksey Kladov2021-02-041-2/+42
|/
* Merge #7547bors[bot]2021-02-032-21/+26
|\ | | | | | | | | | | | | | | | | | | 7547: Split out ItemScope::dump from DefMap::dump r=jonas-schievink a=jonas-schievink This is helpful for more targeted debugging bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Split out ItemScope::dump from DefMap::dumpJonas Schievink2021-02-032-21/+26
|/
* Merge #7546bors[bot]2021-02-032-0/+11
|\ | | | | | | | | | | | | | | 7546: Add newline between block and crate maps r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Add newline between block and crate mapsJonas Schievink2021-02-032-0/+11
| |
* | Merge #7545bors[bot]2021-02-031-0/+1
|\ \ | |/ |/| | | | | | | | | | | 7545: Add a FIXME to ItemTree r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Add a FIXME to ItemTreeJonas Schievink2021-02-031-0/+1
|/
* Merge #7544bors[bot]2021-02-032-1/+25
|\ | | | | | | | | | | | | | | 7544: Update `DefMap` and `block_def_map` docs r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Update `DefMap` and `block_def_map` docsJonas Schievink2021-02-032-1/+25
| |
* | Merge #7543bors[bot]2021-02-031-23/+23
|\ \ | |/ |/| | | | | | | | | | | | | | | 7543: Grammar fixes r=Kushagra-0801 a=Kushagra-0801 I think line 235 is still wrong, but I am not sure. Is the `crated/tt` in line 252 supposed to be `crates/tt`? Co-authored-by: Kushagra Gupta <[email protected]>
| * typo fixesKushagra Gupta2021-02-031-4/+4
| |
| * Grammar fixesKushagra Gupta2021-02-031-20/+20
|/ | | | | I think line 235 is still wrong, but I am not sure. Is the `crated/tt` in line 252 supposed to be `crates/tt`?
* Merge #7541bors[bot]2021-02-0312-100/+211
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7541: Use block_def_map in body lowering (third time's the charm) r=jonas-schievink a=jonas-schievink After https://github.com/rust-analyzer/rust-analyzer/pull/7380 and https://github.com/rust-analyzer/rust-analyzer/pull/7506 both had to be reverted, this should have finally resolved all remaining bugs. Most importantly, the optimization to skip `block_def_map` computation when the block contains no inner items was fixed (which fortunately was simpler than expected). I've ran `analysis-stats` on libstd locally, which works fine, and also ran this PR locally for a short while without issues. Note that this *still* has no (or almost no) user-facing impact, because the rest of r-a still relies on some local item support hacks. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Test for name resolution with DefMap shortcutJonas Schievink2021-02-031-0/+33
| |
| * Shortcut `block_def_map` if there's no inner itemsJonas Schievink2021-02-035-11/+26
| | | | | | | | | | This previously didn't work, but apparently only because of the wonky test setup
| * Use body lowering for block_def_map testsJonas Schievink2021-02-033-68/+117
| | | | | | | | Removes the hacky and buggy custom lowering code
| * Use block_def_map in body loweringJonas Schievink2021-02-036-26/+40
| |
* | Merge #7539bors[bot]2021-02-033-14/+50
|\ \ | |/ |/| | | | | | | | | | | | | | | 7539: Add cargo file tidy test r=edwin0cheng a=edwin0cheng bors r+ cc @pksunkara Co-authored-by: Edwin Cheng <[email protected]>
| * Add cargo file tidy testEdwin Cheng2021-02-033-14/+50
|/
* Merge #7538bors[bot]2021-02-031-1/+1
|\ | | | | | | | | | | | | | | 7538: Make sure normal dependencies always have version r=edwin0cheng a=pksunkara How do I prevent this happening in the future by doing something in the CI? IIRC this is the second time. Co-authored-by: Pavan Kumar Sunkara <[email protected]>
| * Make sure normal dependencies always have versionPavan Kumar Sunkara2021-02-031-1/+1
| |
* | Merge #7537bors[bot]2021-02-034-27/+31
|\ \ | |/ |/| | | | | | | | | | | | | | | 7537: Fix spelling mistakes in docs/dev r=Veykril a=Veykril Also adds a line for `crates/cfg` and `crates/stdx` to the architecture. bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * Fix spelling mistakes in docs/devLukas Wirth2021-02-034-27/+31
|/
* Merge #7536bors[bot]2021-02-032-201/+317
|\ | | | | | | | | | | | | | | | | 7536: Make architecture more informative r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Make architecture more informativeAleksey Kladov2021-02-032-201/+317
| | | | | | | | Call out boundaries and invariants
* | Merge #7528bors[bot]2021-02-021-4/+4
|\ \ | |/ |/| | | | | | | | | | | 7528: Update mimalloc r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * Update mimallockjeremy2021-02-021-4/+4
|/
* Merge #7525bors[bot]2021-02-022-2/+7
|\ | | | | | | | | | | | | | | | | | | | | 7525: Fix resolution of `crate` paths from within blocks r=jonas-schievink a=jonas-schievink They resolve to the crate root, not the DefMap's root module (which can be a block) bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Fix resolution of `crate` paths from within blocksJonas Schievink2021-02-022-2/+7
|/ | | | | They resolve to the crate root, not the DefMap's root module (which can be a block)
* Merge #7523bors[bot]2021-02-024-16/+16
|\ | | | | | | | | | | | | | | 7523: Bump chalk and rustc_lexer r=lnicola a=lnicola bors r+ Co-authored-by: LaurenČ›iu Nicola <[email protected]>
| * Bump rustc_lexerLaurențiu Nicola2021-02-022-3/+3
| |
| * Bump chalkLaurențiu Nicola2021-02-023-13/+13
|/
* Merge #7522bors[bot]2021-02-023-7/+6
|\ | | | | | | | | | | | | | | | | | | | | 7522: Use non-deprecated memmap2 crate r=kjeremy a=kjeremy `cargo audit` complains that `memmap` is unmaintained so switch to RazrFalcon's maintained version. Removes yet another edge on winapi Co-authored-by: kjeremy <[email protected]>
| * Use non-deprecated memmap2 cratekjeremy2021-02-023-7/+6
|/ | | | | | | `cargo audit` complains that `memmap` is unmaintained so switch to RazrFalcon's maintained version. Removes yet another edge on winapi
* Merge #7521bors[bot]2021-02-021-4/+4
|\ | | | | | | | | | | | | | | 7521: cargo update r=kjeremy a=kjeremy Pulls in soundness fix from rowan. Co-authored-by: kjeremy <[email protected]>
| * cargo updatekjeremy2021-02-021-4/+4
| |
* | Merge #7520bors[bot]2021-02-021-1/+5
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7520: Show alias underlying type r=lnicola a=lumenian Closes #7511 Display underlying type in the tooltip: ```rust pub type SomeAlias = f64 ``` instead of: ```rust pub type SomeAlias ``` Co-authored-by: lumenian <[email protected]>
| * Show alias underlying typelumenian2021-02-021-1/+5
|/
* Merge #7519bors[bot]2021-02-021-0/+14
|\ | | | | | | | | | | | | | | 7519: add useless types to the styleguide r=matklad a=matklad bors r+ Co-authored-by: Aleksey Kladov <[email protected]>
| * add useless types to the styleguideAleksey Kladov2021-02-021-0/+14
|/
* Merge #7518bors[bot]2021-02-023-2/+20
|\ | | | | | | | | | | | | | | | | | | 7518: Use the right `DefMap` when looking up modules r=jonas-schievink a=jonas-schievink Fixes the bugs encountered in https://github.com/rust-analyzer/rust-analyzer/pull/7506#issuecomment-771417467 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Use the right `DefMap` when looking up modulesJonas Schievink2021-02-023-2/+20
|/