aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | allow `&mut param` when extracting functionVladyslav Katasonov2021-02-031-3/+107
| | | | | | | | | | | | | | | | | | | | | | | | Recognise &mut as variable modification. This allows extracting functions with `&mut var` with `var` being in outer scope
| * | | allow modifications of vars from outer scope inside extracted functionVladyslav Katasonov2021-02-032-46/+337
| | | | | | | | | | | | | | | | | | | | It currently allows only directly setting variable. No `&mut` references or methods.
| * | | allow local variables to be used after extracted bodyVladyslav Katasonov2021-02-031-41/+183
| | | | | | | | | | | | | | | | | | | | when variable is defined inside extracted body export this variable to original scope via return value(s)
| * | | change TODO to FIXMEVladyslav Katasonov2021-02-031-2/+2
| | | |
| * | | disable test for downgrading mutability on extractVladyslav Katasonov2021-02-031-0/+3
| | | |
| * | | convert IdentPat to Pat via IntoVladyslav Katasonov2021-02-031-5/+5
| | | | | | | | | | | | | | | | before child getter was used
| * | | support extracting methods; no mut loweringVladyslav Katasonov2021-02-031-37/+191
| | | | | | | | | | | | | | | | | | | | currently mut refernce will *not* be downgraded to shared if it is sufficient(see relevant test for example)
| * | | initial version of extract function assistVladyslav Katasonov2021-02-033-0/+848
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | there are a few currently limitations: * no modifications of function body * does not handle mutability and references * no method support * may produce incorrect results
* | | | Merge #7561bors[bot]2021-02-043-8/+9
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7561: Avoid using ModPath's fields directly r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | Avoid using ModPath's fields directlyJonas Schievink2021-02-043-8/+9
|/ / / /
* | | | Merge #7559bors[bot]2021-02-0418-51/+70
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7559: Make `ModPath`'s representation private r=jonas-schievink a=jonas-schievink This lets us switch out the `Vec` for something more efficient bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | Make `ModPath`'s representation privateJonas Schievink2021-02-0418-51/+70
| | | | |
* | | | | Merge #7558bors[bot]2021-02-041-2/+2
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7558: Update thread_local r=kjeremy a=kjeremy Pulls in https://github.com/Amanieu/thread_local-rs/pull/30 which fixes a leak when dropping ThreadLocal. Co-authored-by: kjeremy <[email protected]>
| * | | | Update thread_localkjeremy2021-02-041-2/+2
|/ / / / | | | | | | | | | | | | | | | | Pulls in https://github.com/Amanieu/thread_local-rs/pull/30 which fixes a leak when dropping ThreadLocal.
* | | | 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)