Lukas Wirth
b6910ed1b2
Merge pull request #18327 from ChayimFriedman2/flat-tt
...
Store token trees in contiguous `Vec` instead of as a tree
2025-01-03 11:31:58 +00:00
Chayim Refael Friedman
ceba289f80
Store token trees in contiguous Vec
instead of as a tree
...
I expected this to be faster (due to less allocations and better cache locality), but benchmarked it is not (neither it is slower). Memory usage, however, drops by ~50mb (of `analysis-stats .`). I guess tt construction is just not hot.
This also simplifies using even less memory for token trees by compressing equal span, which I plan to do right after.
Some workflows are more easily expressed with a flat tt, while some are better expressed with a tree. With the right helpers, though (which was mostly a matter of trial and error), even the worst workflows become very easy indeed.
2025-01-02 19:21:46 +02:00
Lukas Wirth
6b56af7688
Implement <RaSpanServer as SourceFile>::eq
2024-12-31 13:00:46 +01:00
Lukas Wirth
f5a6826137
Cleanup proc-macro dylib handling
2024-12-30 11:14:27 +01:00
Lukas Wirth
714b81bec1
Decouple proc-macro server protocol from the server implementation
2024-12-30 10:33:57 +01:00
Lukas Wirth
ed8227c649
internal: Workaround salsa cycles leaking
2024-12-26 14:55:20 +01:00
Lukas Wirth
6c6779e6f0
fix: Fix proc-macro dylib names on windows
2024-12-15 17:38:44 +01:00
Lukas Wirth
8a86fa01ac
Fix clippy lints in proc-macro-srv
2024-12-12 13:30:42 +01:00
Lukas Wirth
c9314d4aff
Only parse the object file once
2024-12-12 13:23:25 +01:00
Lukas Wirth
16c0f25579
Fix copied proc-macros not being cleaned up on exit
2024-12-11 10:17:33 +01:00
Lukas Wirth
f370550b0a
Unload proc-macro dlls on changed timestamp
2024-12-11 09:34:27 +01:00
bjorn3
ad858841e7
Remove support for compressed dylib metadata from rust-analyzer
2024-10-31 12:48:09 +00:00
Lukas Wirth
abed6e24a8
fix: Fix TokenStream::to_string implementation dropping quotation marks
2024-08-29 08:45:35 +02:00
Lukas Wirth
d6666b16c4
fix: Fix proc-macro server crashing when parsing a non-lexable string into a TokenStream
2024-08-29 08:45:19 +02:00
bors
fbed308ebe
Auto merge of #17799 - Veykril:syntax-bridge, r=Veykril
...
Split out syntax-bridge into a separate crate
This functionality is not really tied to mbe macros, so imo it has no place in that crate.
2024-08-05 12:31:45 +00:00
Lukas Wirth
188c577855
Newtype ErasedFileAstId
2024-08-05 13:46:47 +02:00
Lukas Wirth
d2dd4f6d5f
Split out syntax-bridge into a separate crate
2024-08-05 13:45:00 +02:00
Lukas Wirth
5264f86242
Encode edition within FileId in the hir layer
2024-07-18 08:49:10 +02:00
Lukas Wirth
7011094685
Add always disabled gen parse support
2024-07-17 10:49:12 +02:00
Lukas Wirth
93024ad411
Switch token trees to use Symbols
2024-07-16 10:11:59 +02:00
Lukas Wirth
e846c04fbe
Encode ident rawness and literal kind separately in tt::Leaf
2024-07-15 12:24:40 +02:00
Lukas Wirth
c6709ffe05
Improve error message when the proc-macro server unexpectedly exits
2024-07-01 14:30:21 +02:00
Lukas Wirth
c236190b60
Abstract proc-macro-srv protocol format
2024-06-30 16:56:30 +02:00
Lukas Wirth
b0c4bc4972
Fix proc-macro-test build script
2024-06-30 16:26:39 +02:00
Lukas Wirth
2fb38ceb66
Faster env snapshotting in proc-macro-srv
2024-06-30 16:10:20 +02:00
Lukas Wirth
0b88dfc8b1
Rename proc-macro-srv::server to server_impl
2024-06-30 15:36:46 +02:00
Lukas Wirth
23b043a622
Move proc-macro-srv RUSTC_VERSION fetching from include to env var
2024-06-30 15:28:31 +02:00
Lukas Wirth
21a3d01875
Remove inline rust_2018_idioms, unused_lifetimes
lint warn, Cargo.toml already enforces this
2024-06-30 15:23:54 +02:00
Lukas Wirth
db15273d4d
Move dylib version stuff to proc-macro-srv
2024-06-30 15:05:35 +02:00
Lukas Wirth
8e324e98a1
Rename ProcMacroKind::FuncLike to Bang
2024-03-22 11:20:56 +01:00
Lukas Wirth
cd8eb0fe6d
internal: Remove span trait
2024-03-21 20:08:30 +01:00
Lukas Wirth
399dbc074b
internal: Enforce utf8 paths
2024-03-19 15:39:00 +01:00
Lukas Wirth
d085ade631
Remove dead test code
2024-03-14 16:24:51 +01:00
Lukas Wirth
d2f8eae2ec
feat: Support macro calls in eager macros for IDE features
2024-03-14 15:40:35 +01:00
Laurențiu Nicola
80470d5ce8
Merge commit '4ef6a49b44e8aa380da7522442234bfd7a52c55e' into sync-from-ra
2024-03-03 09:17:31 +02:00
Laurențiu Nicola
9e4ecc60a5
Merge commit '4a8d0f7f565b6df45da5522dd7366a4df3460cd7' into sync-from-ra
2024-02-25 09:45:26 +02:00
Laurențiu Nicola
6b17dba68c
Merge commit 'ac998a74b3c8ff4b81c3eeb9a18811d4cc76226d' into sync-from-ra
2024-02-18 09:41:20 +02:00
Nicholas Nethercote
d33d8675d0
Add ErrorGuaranteed
to ast::LitKind::Err
, token::LitKind::Err
.
...
This mostly works well, and eliminates a couple of delayed bugs.
One annoying thing is that we should really also add an
`ErrorGuaranteed` to `proc_macro::bridge::LitKind::Err`. But that's
difficult because `proc_macro` doesn't have access to `ErrorGuaranteed`,
so we have to fake it.
2024-02-15 14:46:08 +11:00
Laurențiu Nicola
e41ab350d6
Merge commit 'ddf105b646c6749a2de2451c9a499a354eec79c2' into sync-from-ra
2024-02-11 08:40:19 +02:00
Laurențiu Nicola
b8a3180a60
Merge commit '0113bc9388b480fa42c632f57f4f0f7af5813ec1' into sync-from-ra
2024-02-04 10:37:58 +02:00
Laurențiu Nicola
f43cea0878
Merge commit '7219414e81810fd4d967136c4a0650523892c157' into sync-from-ra
2024-01-28 15:56:54 +02:00
Laurențiu Nicola
6bbd106c70
Merge commit '9d8889cdfcc3aa0302353fc988ed21ff9bc9925c' into sync-from-ra
2024-01-15 11:40:09 +02:00
Lukas Wirth
b83f487d10
Set the in-rust-tree
` feature for all rust-analyzer{-proc-macro-srv} steps
2024-01-04 11:02:20 +01:00
Laurențiu Nicola
932d85b529
Merge commit '426d2842c1f0e5cc5e34bb37c7ac3ee0945f9746' into sync-from-ra2
2024-01-03 11:35:07 +02:00
bors
cac74d98f6
Auto merge of #118830 - GuillaumeGomez:env-tracked_env, r=Nilstrieb
...
Add support for `--env` on `tracked_env::var`
Follow-up of https://github.com/rust-lang/rust/pull/118368 .
Part of Part of https://github.com/rust-lang/rust/issues/80792 .
It adds support of the `--env` option for proc-macros through `tracked_env::var`.
r? `@Nilstrieb`
2023-12-17 04:23:08 +00:00
Guillaume Gomez
6adb21a408
Update rust-analyzer to support new injected_env_var
function
2023-12-11 16:44:33 +01:00
Laurențiu Nicola
f532576ac5
Merge commit '457b966b171b09a7e57acb710fbca29a4b3526f0' into sync-from-ra
2023-12-11 11:16:01 +02:00
Ralf Jung
11a70f6f69
also make 'core_intrinsics' internal
2023-11-22 20:00:56 +01:00
Laurențiu Nicola
aa55ce9567
Merge commit 'baee6b338b0ea076cd7a9f18d47f175dd2ba0e5d' into sync-from-ra
2023-08-07 12:03:15 +03:00
Mara Bos
6502421771
Remove outdated import in r-a proc macro server.
2023-06-21 14:02:59 +02:00