From e19268461209626b5f71894304ebc1877f7879e9 Mon Sep 17 00:00:00 2001 From: JT <547158+jntrnr@users.noreply.github.com> Date: Tue, 17 May 2022 10:49:59 +1200 Subject: [PATCH] Revert "Try to do less work during capture discovery (#5560)" (#5561) This reverts commit 5d40fc27262e542976ab39b47bd2a1d44a98ea9f. --- crates/nu-parser/src/parser.rs | 42 +++++++++++++++------------------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/crates/nu-parser/src/parser.rs b/crates/nu-parser/src/parser.rs index 8beb46ac9..44f20ec9b 100644 --- a/crates/nu-parser/src/parser.rs +++ b/crates/nu-parser/src/parser.rs @@ -4924,18 +4924,15 @@ pub fn discover_captures_in_expr( output.extend(&result); } Expr::Block(block_id) => { - if !seen_blocks.contains_key(block_id) { - let block = working_set.get_block(*block_id); - seen_blocks.insert(*block_id, vec![]); - let results = { - let mut seen = vec![]; - discover_captures_in_block(working_set, block, &mut seen, seen_blocks) - }; - seen_blocks.insert(*block_id, results.clone()); - for var_id in results.into_iter() { - if !seen.contains(&var_id) { - output.push(var_id) - } + let block = working_set.get_block(*block_id); + let results = { + let mut seen = vec![]; + discover_captures_in_block(working_set, block, &mut seen, seen_blocks) + }; + seen_blocks.insert(*block_id, results.clone()); + for var_id in results.into_iter() { + if !seen.contains(&var_id) { + output.push(var_id) } } } @@ -5076,18 +5073,15 @@ pub fn discover_captures_in_expr( } } Expr::RowCondition(block_id) | Expr::Subexpression(block_id) => { - if !seen_blocks.contains_key(block_id) { - let block = working_set.get_block(*block_id); - seen_blocks.insert(*block_id, vec![]); - let results = { - let mut seen = vec![]; - discover_captures_in_block(working_set, block, &mut seen, seen_blocks) - }; - seen_blocks.insert(*block_id, results.clone()); - for var_id in results.into_iter() { - if !seen.contains(&var_id) { - output.push(var_id) - } + let block = working_set.get_block(*block_id); + let results = { + let mut seen = vec![]; + discover_captures_in_block(working_set, block, &mut seen, seen_blocks) + }; + seen_blocks.insert(*block_id, results.clone()); + for var_id in results.into_iter() { + if !seen.contains(&var_id) { + output.push(var_id) } } }