Lukas Wirth
7f0fbf7f9d
Switch crate graph to use an Arena instead of a hashmap
2023-04-05 10:32:02 +02:00
Lukas Wirth
b3919ea80d
Cleanup crate_graph construction
2023-03-31 14:14:04 +02:00
Lukas Wirth
31db1fc75f
internal: Refine CrateOrigin variants
2023-03-31 10:36:13 +02:00
bors
b915eb32fa
Auto merge of #14427 - davidbarsky:davidbarsky/allow-subsequent-workspaces-to-have-proc-macros, r=Veykril
...
fix: allow new, subsequent `rust-project.json`-based workspaces to get proc macro expansion
As detailed in https://github.com/rust-lang/rust-analyzer/issues/14417#issuecomment-1485336174 , `rust-project.json` workspaces added after the initial `rust-project.json`-based workspace was already indexed by rust-analyzer would not receive procedural macro expansion despite `config.expand_proc_macros` returning true. To fix this issue:
1. I changed `reload.rs` to check which workspaces are newly added.
2. Spawned new procedural macro expansion servers based on the _new_ workspaces.
1. This is to prevent spawning duplicate procedural macro expansion servers for already existing workspaces. While the overall memory usage of duplicate procedural macro servers is minimal, this is more about the _principle_ of not leaking processes 😅 .
3. Launched procedural macro expansion if any workspaces are `rust-project.json`-based _or_ `same_workspaces` is true. `same_workspaces` being true (and reachable) indicates that that build scripts have finished building (in Cargo-based projects), while the build scripts in `rust-project.json`-based projects have _already been built_ by the build system that produced the `rust-project.json`.
I couldn't really think of structuring this code in a better way without engaging with https://github.com/rust-lang/rust-analyzer/issues/7444 .
2023-03-30 07:50:27 +00:00
David Barsky
25c59b8e92
address PR comments
2023-03-29 15:29:32 -04:00
David Barsky
6a42d7f627
fix: allow new, subsequent rust-project.json
-based workspaces to get
...
proc macro expansion.
2023-03-28 09:17:16 -04:00
Lukas Wirth
f1de133820
Canonicalize rust-project.json manifest path
2023-03-27 21:55:02 +02:00
Lukas Wirth
b03a218b57
fix: Fix proc-macro paths using incorrect CrateId's for rust-project.json workspaces
2023-03-27 17:17:09 +02:00
Lukas Wirth
ee02213e65
Handle proc macro fetching via OpQueue
2023-03-26 09:33:41 +02:00
Lukas Wirth
607375dc20
Load proc-macros asynchronously
2023-03-25 18:06:06 +01:00
Lukas Wirth
d154ea88f9
Split out proc-macros from the CrateGraph
2023-03-25 16:46:44 +01:00
bors
992a0fc074
Auto merge of #14403 - Veykril:dependencies, r=Veykril
...
internal: Bump Cargo.lock
2023-03-25 14:15:10 +00:00
Lukas Wirth
39e86e78c3
Bump Cargo.lock
2023-03-25 15:12:39 +01:00
Lukas Wirth
c01ba4a310
Reject symlinks in project-json
2023-03-25 14:22:05 +01:00
Lukas Wirth
d9c7d28e0d
Report sysroot and rustc crate loading errors
2023-03-15 11:35:34 +01:00
Lukas Wirth
8b8cd04825
fix: Don't pass feature flags to rustc private crates metadata invocation
2023-03-15 10:52:50 +01:00
bors
6f297b9076
Auto merge of #14348 - Veykril:rustc-proc, r=Veykril
...
fix: Fix rustc proc-macro handling being broken on the rustc workspace itself
Also addresses https://github.com/rust-lang/rust-analyzer/issues/13591#issuecomment-1466966952
2023-03-14 10:34:23 +00:00
Lukas Wirth
88f0fe784f
fix: Fix rustc proc-macro handling being broken on the rustc workspace itself
2023-03-14 11:33:40 +01:00
David Barsky
677c0eeccb
Add path of workspace root folders to status output
2023-03-13 14:45:41 -04:00
Laurențiu Nicola
cfc9d5cd3b
Pass flycheck extra args when running build scripts
2023-03-11 19:28:02 +02:00
Lukas Wirth
d8c80e7d95
Add core lib to proc_macro dependencies
2023-03-09 12:58:07 +01:00
Lukas Wirth
4ee2abaf38
minor: Fixup dylib extensions for rustc_private proc-macro loading
2023-03-08 14:45:47 +01:00
Lukas Wirth
c9786484c5
Load proc-macros for rustc_private crates
2023-03-08 12:41:38 +01:00
Lukas Wirth
88f2abb8f7
Don't drop rustc crates in the rustc workspace
2023-03-02 12:55:41 +01:00
Lukas Wirth
47a567b833
Deduplicate source roots that have overlapping include paths
2023-02-28 12:08:23 +01:00
bors
1d32a7b7c6
Auto merge of #14094 - HKalbasi:layout, r=flodiebold
...
Reuse fetching target data layout from rustc function
fix https://github.com/rust-lang/rust-analyzer/pull/14087?notification_referrer_id=NT_kwDOArGpCLM1NTEyMDQ5MjU3OjQ1MTk3NTc2#discussion_r1097850915
2023-02-06 22:35:37 +00:00
hkalbasi
40cf8b45ac
reuse fetching target data layout from rustc function
2023-02-06 23:48:20 +03:30
Lukas Wirth
cb9a5b9549
Support sysroot library source being defined inside the workspace
2023-02-06 12:07:33 +01:00
Maybe Waffle
249ea9502d
Set "current" edition to 2021
2023-01-31 10:51:43 +00:00
Lukas Wirth
b2598f4801
Don't fail workspace loading if sysroot can't be found
2023-01-27 13:49:28 +01:00
Lukas Wirth
1535881836
Replace SmolStr usage with lang item enum for lang items
2023-01-21 17:55:45 +01:00
Lukas Wirth
384fa4b84a
fix: Fix target-data-layout fetching incorrectly passing 'rustc' to rustc
2023-01-19 21:31:08 +01:00
bors
fa874627f0
Auto merge of #13969 - Veykril:workspace.dependencies, r=Veykril
...
Use workspace.dependencies to declare local dependencies
2023-01-17 10:29:27 +00:00
Lukas Wirth
bed4db3c62
Use workspace.dependencies to declare local dependencies
2023-01-17 10:52:26 +01:00
Lukas Wirth
e4858fe480
Specify authors, edition and license via workspace.package
2023-01-16 16:44:00 +01:00
Lukas Wirth
679df2adf1
Specify rust-version via workspace.package
2023-01-16 16:33:01 +01:00
Alex Kladov
bd350085f6
Update crates/project-model/src/project_json.rs
...
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2023-01-13 12:01:04 +00:00
Alex Kladov
87315ef5c3
Apply suggestions from code review
...
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2023-01-13 11:57:02 +00:00
Aleksey Kladov
aa73366b0b
internal: explain the idea behind rust-project.json
2023-01-13 11:44:02 +00:00
Daniel Eades
5b1cd8245f
fixup
2023-01-10 19:44:19 +00:00
Daniel Eades
ac3844a0bb
a number of code simplifications
2023-01-10 18:48:51 +00:00
Daniel Eades
4f8ffd0ba4
remove unnecessary lifetimes that can be elided
2023-01-02 15:02:54 +00:00
Daniel Eades
ed128872eb
remove needless borrows
2023-01-02 14:52:32 +00:00
Daniel Eades
77051679d7
use inline format args
2023-01-02 14:52:32 +00:00
Yuri Astrakhan
e16c76e3c3
Inline all format arguments where possible
...
This makes code more readale and concise,
moving all format arguments like `format!("{}", foo)`
into the more compact `format!("{foo}")` form.
The change was automatically created with, so there are far less change
of an accidental typo.
```
cargo clippy --fix -- -A clippy::all -W clippy::uninlined_format_args
```
2022-12-24 14:36:10 -05:00
Yuri Astrakhan
e341e996f7
Clippy-fix explicit auto-deref
...
Seems like these can be safely fixed. With one, I was particularly
surprised -- `Some(pats) => &**pats,` in body.rs?
```
cargo clippy --fix -- -A clippy::all -D clippy::explicit_auto_deref
```
2022-12-23 02:52:14 -05:00
Lukas Wirth
a694c342fa
Fix tests not using appropriate target data
2022-12-21 20:23:43 +01:00
Lukas Wirth
33591cd3f4
Calculate the TargetDataLayout correctly for the selected target
2022-12-21 15:11:24 +01:00
bors
81d26e730e
Auto merge of #13667 - Veykril:detached-files-sysroot, r=Veykril
...
Handle sysroot config in detached-files workspaces
2022-11-24 09:21:44 +00:00
Lukas Wirth
2300c9de83
Handle sysroot config in detached-files workspaces
2022-11-24 10:21:19 +01:00