From 58edb3a11c63f71bed6726b1fdd098e3fdfcac69 Mon Sep 17 00:00:00 2001 From: Will Lillis Date: Sun, 13 Jul 2025 18:47:23 -0400 Subject: [PATCH] perf(generate): reserve more `Vec` capacities (cherry picked from commit 0f79c61188cfe90d5245ee0e4484ae43bc11e5f7) --- cli/generate/src/build_tables/build_parse_table.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cli/generate/src/build_tables/build_parse_table.rs b/cli/generate/src/build_tables/build_parse_table.rs index 67f84df0..e81322b0 100644 --- a/cli/generate/src/build_tables/build_parse_table.rs +++ b/cli/generate/src/build_tables/build_parse_table.rs @@ -312,6 +312,12 @@ impl<'a> ParseTableBuilder<'a> { } } + let non_terminal_sets_len = non_terminal_extra_item_sets_by_first_terminal.len(); + self.non_terminal_extra_states + .reserve(non_terminal_sets_len); + self.parse_state_info_by_id.reserve(non_terminal_sets_len); + self.parse_table.states.reserve(non_terminal_sets_len); + self.parse_state_queue.reserve(non_terminal_sets_len); // Add a state for each starting terminal of a non-terminal extra rule. for (terminal, item_set) in non_terminal_extra_item_sets_by_first_terminal { if terminal.is_non_terminal() {