| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | | |
Recognise &mut as variable modification.
This allows extracting functions with
`&mut var` with `var` being in outer scope
|
| | |
| | |
| | |
| | |
| | | |
It currently allows only directly setting variable.
No `&mut` references or methods.
|
| | |
| | |
| | |
| | |
| | | |
when variable is defined inside extracted body
export this variable to original scope via return value(s)
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
before child getter was used
|
| | |
| | |
| | |
| | |
| | | |
currently mut refernce will *not* be downgraded to shared
if it is sufficient(see relevant test for example)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
there are a few currently limitations:
* no modifications of function body
* does not handle mutability and references
* no method support
* may produce incorrect results
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
7561: Avoid using ModPath's fields directly r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <[email protected]>
|
|/ / / |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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]>
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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]>
|
|/ / /
| | |
| | |
| | |
| | | |
Pulls in https://github.com/Amanieu/thread_local-rs/pull/30 which fixes
a leak when dropping ThreadLocal.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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]>
|
|/ / / |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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]>
|
|/ / /
| | |
| | |
| | |
| | | |
It already stores the DefMap containing the module, so having
a full ModuleId is unnecessary and makes it easier to mix things up
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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]>
|
|/ / /
| | |
| | |
| | |
| | | |
This seems like it could easily leak a lot of memory since we don't
currently run GC
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
7553: More architecture.md r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
|
|/ / / |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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]>
|
|/ / / |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
7546: Add newline between block and crate maps r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <[email protected]>
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | | |
7545: Add a FIXME to ItemTree r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <[email protected]>
|
|/ / / |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
7544: Update `DefMap` and `block_def_map` docs r=jonas-schievink a=jonas-schievink
bors r+
Co-authored-by: Jonas Schievink <[email protected]>
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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]>
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | | |
I think line 235 is still wrong, but I am not sure.
Is the `crated/tt` in line 252 supposed to be `crates/tt`?
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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]>
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This previously didn't work, but apparently only because of the wonky
test setup
|
| | | |
| | | |
| | | |
| | | | |
Removes the hacky and buggy custom lowering code
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
7539: Add cargo file tidy test r=edwin0cheng a=edwin0cheng
bors r+
cc @pksunkara
Co-authored-by: Edwin Cheng <[email protected]>
|
|/ / / |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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]>
|
| | |/
| |/| |
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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]>
|
|/ / |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
7536: Make architecture more informative r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <[email protected]>
|
| |/
| |
| |
| | |
Call out boundaries and invariants
|
|\ \
| |/
|/|
| |
| |
| |
| |
| | |
7528: Update mimalloc r=kjeremy a=kjeremy
Co-authored-by: kjeremy <[email protected]>
|
|/ |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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]>
|
|/
|
|
|
| |
They resolve to the crate root, not the DefMap's root module (which
can be a block)
|