fe4a94fff3
7994: Speed up mbe matching in heavy recursive cases r=edwin0cheng a=edwin0cheng In some cases (e.g. #4186), mbe matching is very slow due to a lot of copy and allocation for bindings, this PR try to solve this problem by introduce a semi "link-list" approach for bindings building. I used this [test case](https://github.com/weiznich/minimal_example_for_rust_81262) (for `features(32-column-tables)`) to run following command to benchmark: ``` time rust-analyzer analysis-stats --load-output-dirs ./ ``` Before this PR : 2 mins After this PR: 3 seconds. However, for 64-column-tables cases, we still need 4 mins to complete. I will try to investigate in the following weeks. bors r+ Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com> |
||
---|---|---|
.. | ||
ast_id_map.rs | ||
builtin_derive.rs | ||
builtin_macro.rs | ||
db.rs | ||
diagnostics.rs | ||
eager.rs | ||
hygiene.rs | ||
lib.rs | ||
name.rs | ||
proc_macro.rs | ||
quote.rs | ||
test_db.rs |