rust-analyzer/crates
Chayim Refael Friedman 0d4af7bce3 Fix a bug with missing binding in MBE
We should immediately mark them as finished, on the first entry.

The funny (or sad) part was that this bug was pre-existing, but previously to #18327, it was causing us to generate bindings non-stop, 65535 of them, until we get to the hardcoded repetition limit, and then throw it all away. And it was so Blazingly Fast that nobody noticed.

With #18327 however, this is still what happens, except that now instead of *merging* the fragments into the result, we write them on-demand. Meaning that when we hit the limit, we've already written all previous entries. This is a minor change, I thought for myself when I was writing this, and it's actually for the better, so who cares. Minor change? Not so fast. This caused us to emit 65535 repetitions, all of which the MBE infra needs to handle when calling other macros with the expansion, and convert to rowan tree etc., which resulted a *massive* hang.

The test (and also `analysis-stats`) used to crash with stack overflow on this macro, because we were dropping some crazily deep rowan tree. Now they work properly. Because I am lazy, and also because I could not find the exact conditions that causes a macro match but with a missing binding, I just copied all macros from tracing. Easy.
2025-01-07 23:04:53 +02:00
..
base-db Automatically sort crate graph 2025-01-02 15:50:51 +01:00
cfg Store token trees in contiguous Vec instead of as a tree 2025-01-02 19:21:46 +02:00
edition Add description field to edition manifest 2025-01-03 14:32:35 +02:00
hir Merge pull request #18853 from ChayimFriedman2/no-completion 2025-01-07 06:44:50 +00:00
hir-def Merge pull request #18853 from ChayimFriedman2/no-completion 2025-01-07 06:44:50 +00:00
hir-expand Merge from rust-lang/rust 2025-01-07 17:57:53 +02:00
hir-ty Merge pull request #18846 from Veykril/push-kmspklwynynu 2025-01-06 17:12:14 +00:00
ide Merge pull request #18852 from ChayimFriedman2/proc-macro-panic 2025-01-06 18:38:24 +00:00
ide-assists minor: New clippy lints 2025-01-06 17:57:17 +01:00
ide-completion fix: do not offer completions within macro strings 2025-01-07 17:02:28 +05:30
ide-db minor: New clippy lints 2025-01-06 17:57:17 +01:00
ide-diagnostics Fix a bug with missing binding in MBE 2025-01-07 23:04:53 +02:00
ide-ssr Show expansion errors in expand_macro feature 2024-12-13 09:36:03 +01:00
intern Support the new CoercePointee derive 2025-01-04 18:35:53 +02:00
limit Replace [package.repository] = "…" of published crates with [package.repository.workspace] = true 2024-08-06 00:26:42 +02:00
load-cargo Store token trees in contiguous Vec instead of as a tree 2025-01-02 19:21:46 +02:00
mbe Fix a bug with missing binding in MBE 2025-01-07 23:04:53 +02:00
parser minor: New clippy lints 2025-01-06 17:57:17 +01:00
paths internal: Split serde derive feature into serde_derive usage 2024-12-20 11:55:02 +01:00
proc-macro-api minor: New clippy lints 2025-01-06 17:57:17 +01:00
proc-macro-srv Merge pull request #18327 from ChayimFriedman2/flat-tt 2025-01-03 11:31:58 +00:00
proc-macro-srv-cli Store token trees in contiguous Vec instead of as a tree 2025-01-02 19:21:46 +02:00
profile Use c"lit" for CStrings without unwrap 2024-12-02 18:16:36 +00:00
project-model Merge pull request #18867 from Veykril/push-ntmxlropxkrr 2025-01-07 13:46:58 +00:00
ra-salsa Downgrade salsa log levels 2024-12-28 18:23:24 +01:00
rust-analyzer Merge pull request #18867 from Veykril/push-ntmxlropxkrr 2025-01-07 13:46:58 +00:00
span Decouple proc-macro server protocol from the server implementation 2024-12-30 10:33:57 +01:00
stdx Merge pull request #18074 from ChayimFriedman2/typeref-source-map 2024-10-28 11:01:12 +00:00
syntax minor: New clippy lints 2025-01-06 17:57:17 +01:00
syntax-bridge Store token trees in contiguous Vec instead of as a tree 2025-01-02 19:21:46 +02:00
test-fixture fix: do not offer completions within macro strings 2025-01-07 17:02:28 +05:30
test-utils Support the new CoercePointee derive 2025-01-04 18:35:53 +02:00
toolchain minor: New clippy lints 2025-01-06 17:57:17 +01:00
tt Store token trees in contiguous Vec instead of as a tree 2025-01-02 19:21:46 +02:00
vfs Rename object_safety to dyn_compatibility 2024-09-29 07:26:45 -04:00
vfs-notify Auto merge of #17843 - mo8it:flycheck, r=Veykril 2024-08-12 09:27:47 +00:00