From c18316534570df21d355ebac4a576229d09bbd02 Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Mon, 20 Apr 2026 22:24:39 +0200 Subject: [PATCH 01/52] Restore cleared scopes before Pop on pop: N + set: X MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit push_meta_ops emitted the compound Pop before the Restore when the leaving context carried `clear_scopes:` and `set_pop_count > 1`. The intermediate popped frame's meta_content_scope is split across the live scope stack and clear_stack; Pop — counting the full pre-Clear total — then ate atoms from frames below the popped range. Observed on Batch File `cmd-set-quoted-value-inner-end` (`clear_scopes: 1`) firing `pop: 2, set: ignored-tail-outer`, which dropped `meta.command.set.dosbatch` from the trailing content of every quoted `set "var"=...` line. Emit Restore before Pop when `set_pop_count > 1`; plain `set:` keeps the existing Pop-then-Restore order (gated by the Lisp `defun` test `v2_set_to_target_with_clear_scopes_clears_parent_meta_content_scope`). syntax_test_batch_file.bat: 74 → 0 on both backends; no other baseline entry changes. New regression `pop_n_set_with_cur_clear_scopes_restores_before_popping_deeper_frames`. Refs: #631 --- src/parsing/parser.rs | 96 ++++++++++++++++++++++- testdata/known_syntest_failures.txt | 1 - testdata/known_syntest_failures_fancy.txt | 1 - 3 files changed, 95 insertions(+), 3 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index f8102e32..9519bd1d 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -1598,6 +1598,21 @@ impl ParseState { } } + // `pop: N + set:` with clear_scopes on the leaving + // context: restore the cleared atoms BEFORE the + // compound Pop so num_to_pop finds the popped frames' + // full meta_content_scope on the scope stack. Without + // this, Pop eats atoms from below the popped range — + // observed on Batch File `cmd-set-quoted-value-inner-end` + // (`clear_scopes: 1`) firing `pop: 2, set: ignored-tail-outer`, + // which otherwise drops `meta.command.set.dosbatch` from + // the trailing content of every `set "var"=...` line. + let restore_before_pop = + is_set && set_pop_count > 1 && cur_context.clear_scopes.is_some(); + if restore_before_pop { + ops.push((index, ScopeStackOp::Restore)); + } + // do all the popping as one operation if num_to_pop > 0 { ops.push((index, ScopeStackOp::Pop(num_to_pop))); @@ -1607,7 +1622,7 @@ impl ParseState { // cur.meta_scope and the initial phase's target.meta_scope // push have been popped off. The restored atoms land below // the target's upcoming meta_scope / meta_content_scope push. - if is_set && cur_context.clear_scopes.is_some() { + if is_set && cur_context.clear_scopes.is_some() && !restore_before_pop { ops.push((index, ScopeStackOp::Restore)); } @@ -5480,6 +5495,85 @@ contexts: ); } + #[test] + fn pop_n_set_with_cur_clear_scopes_restores_before_popping_deeper_frames() { + // `pop: N + set: X` fired from a context that itself declares + // `clear_scopes` at the context level: the deeper popped frame's + // meta_content_scope is partly on the live scope stack and partly + // in `clear_stack` (stripped by cur's Clear on entry). Emitting the + // compound Pop before Restore makes Pop eat atoms from below the + // intended popped range, dropping the outer frame's meta_scope. + // Shape mirrors Batch File's `cmd-set-quoted-value-inner-end` + // (`clear_scopes: 1`) firing `pop: 2, set: ignored-tail-outer` below + // a `cmd-set-quoted-value-inner` that carries a 2-atom + // meta_content_scope. + let syntax_str = r#" +name: PopNSetClear +scope: source.popnsetclear +version: 2 +contexts: + main: + - match: 'a' + scope: p.a + push: [outer, middle] + + outer: + - meta_scope: outer.test + - match: 'z' + pop: 1 + + middle: + - meta_content_scope: mid1.test mid2.test + - match: 'b' + scope: p.b + push: top + + top: + - clear_scopes: 1 + - match: 'c' + scope: p.c + pop: 2 + set: target + + target: + - meta_scope: target.test + - match: 'd' + scope: p.d +"#; + let syntax = SyntaxDefinition::load_from_str(syntax_str, true, None).unwrap(); + let ss = link(syntax); + let mut state = ParseState::new(&ss.syntaxes()[0]); + let raw_ops = ops(&mut state, "abcd", &ss); + let states = stack_states(raw_ops); + + // The scope stack state recorded on the `d` token (in `target`): + // must contain `outer.test` (outer's meta_scope still on the stack) + // and `target.test` (target's meta_scope, pushed by the pop:2+set:) + // and must NOT contain `mid1.test` or `mid2.test` (middle was popped + // by pop:2 and its meta_content_scope atoms — one live, one in + // clear_stack — should both be gone). + let d_state = states + .iter() + .find(|s| s.contains("p.d")) + .unwrap_or_else(|| panic!("expected a state containing `p.d`, got: {:?}", states)); + assert!( + d_state.contains("outer.test"), + "outer.test must survive pop:2+set: (it sits below the popped range): {}", + d_state + ); + assert!( + d_state.contains("target.test"), + "target.test must be on the stack (target was pushed by set:): {}", + d_state + ); + assert!( + !d_state.contains("mid1.test") && !d_state.contains("mid2.test"), + "middle's meta_content_scope atoms must not linger after pop:2+set:, \ + including the atom that was in clear_stack: {}", + d_state + ); + } + #[test] fn v2_set_clear_scopes_applies_from_every_context() { // v2: when `set:` lists multiple contexts, `clear_scopes` on any of diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index 5872c1ec..0050ba16 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -1,6 +1,5 @@ loading syntax definitions from testdata/Packages FAILED testdata/Packages/ASP/syntax_test_asp.asp: 53 -FAILED testdata/Packages/Batch File/tests/syntax_test_batch_file.bat: 74 FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 3 FAILED testdata/Packages/C#/tests/syntax_test_Generics.cs: 3 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index 5872c1ec..0050ba16 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -1,6 +1,5 @@ loading syntax definitions from testdata/Packages FAILED testdata/Packages/ASP/syntax_test_asp.asp: 53 -FAILED testdata/Packages/Batch File/tests/syntax_test_batch_file.bat: 74 FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 3 FAILED testdata/Packages/C#/tests/syntax_test_Generics.cs: 3 From d1200b36d34a0764d06810144e472962359c1d1d Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Tue, 21 Apr 2026 17:06:21 +0200 Subject: [PATCH 02/52] Clip captures: N span to rule's match bounds Sublime Text applies `captures: N:` to the overlap between group N's span and the rule's consumed match range. syntect dropped lookaround- internal captures in `parse_captures` and would have emitted Pop past match_end in `build_capture_ops` had they reached it. Keep every non-negative `captures:` key at load time; clip `(cap_start, cap_end)` to `regions.pos(0)` at apply time. Removes the now-unused `get_consuming_capture_indexes` walker and its tests. Baseline (both backends): clears ASP/syntax_test_asp.asp (53), C#/tests/syntax_test_Generics.cs (3), Rails/tests/syntax_test_rails.html.erb (23). Refs: #631 --- src/parsing/parser.rs | 89 +++++++++++++- src/parsing/yaml_load.rs | 136 ++-------------------- testdata/known_syntest_failures.txt | 3 - testdata/known_syntest_failures_fancy.txt | 3 - 4 files changed, 96 insertions(+), 135 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index 9519bd1d..c320d9ed 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -194,20 +194,34 @@ type SearchCache = HashMap<*const MatchPattern, Option, BuildHasherDefau /// before any inner group). Empty captures are skipped because they'd /// otherwise sort a Pop before its Push. The returned ops are already /// position-ordered and safe to append to a parser ops vec. +/// +/// Each capture's `(cap_start, cap_end)` is clipped to the outer match +/// range `regions.pos(0)` so a group matching inside a `(?=...)` / +/// `(?<=...)` whose own span extends past the consumed range still +/// colours the overlap (the boundary char) and nothing beyond it. This +/// mirrors Sublime Text; without the clip, a lookahead-internal +/// `captures:` entry leaked scope over unmatched trailing chars or was +/// silently dropped upstream in `parse_captures`. fn build_capture_ops(capture_map: &CaptureMapping, regions: &Region) -> Vec<(usize, ScopeStackOp)> { let mut map: Vec<((usize, i32), ScopeStackOp)> = Vec::new(); + let (match_start, match_end) = match regions.pos(0) { + Some(bounds) => bounds, + None => return Vec::new(), + }; for &(cap_index, ref scopes) in capture_map.iter() { if let Some((cap_start, cap_end)) = regions.pos(cap_index) { - if cap_start == cap_end { + let clipped_start = cap_start.max(match_start); + let clipped_end = cap_end.min(match_end); + if clipped_start >= clipped_end { continue; } for scope in scopes.iter() { map.push(( - (cap_start, -((cap_end - cap_start) as i32)), + (clipped_start, -((clipped_end - clipped_start) as i32)), ScopeStackOp::Push(*scope), )); } - map.push(((cap_end, i32::MIN), ScopeStackOp::Pop(scopes.len()))); + map.push(((clipped_end, i32::MIN), ScopeStackOp::Pop(scopes.len()))); } } map.sort_by(|a, b| a.0.cmp(&b.0)); @@ -5227,6 +5241,75 @@ contexts: ); } + #[test] + fn captures_clipped_to_match_bounds_when_group_extends_past_match_end() { + // Repro of a C# generic-function-call divergence against ST. + // Rule shape: a consumed identifier, then a lookahead containing + // a capturing group whose match extends *past* the outer rule's + // consumed end, then a second consumed group starting at the + // same column where the lookahead began. `captures: 2:` targets + // the lookahead-internal group. ST clips each captures:N span + // to the rule's match bounds and only colours the overlap — + // which here is the single consumed char at the match-end + // boundary. Syntect used to colour the full group-2 range, + // emitting a Pop past match_end and leaving the scope active + // over chars the match never consumed. + let syntax_str = r#" +name: CapturesClip +scope: source.capclip +contexts: + main: + - match: '(foo)(?=(barrr)baz)(bar)' + captures: + 1: captured-foo.capclip + 2: lookahead-group.capclip + 3: consumed-bar.capclip +"#; + let syntax = SyntaxDefinition::load_from_str(syntax_str, true, None).unwrap(); + let ss = link(syntax); + let mut state = ParseState::new(&ss.syntaxes()[0]); + let raw_ops = ops(&mut state, "foobarrrbaz\n", &ss); + + // The rule consumes "foobar" — match_start=0, match_end=6. + // Group 2's own range (the lookahead match "barrr") extends to + // column 8. Every op emitted by the captures application must + // sit within [match_start, match_end]; anything at col 7+ means + // the lookahead-internal group's span leaked past the match. + // match_start=0, match_end=6 (rule consumes "foobar"). Group 2's + // own range (the lookahead match "barrr") extends to col 8. + // + // After the fix we expect: + // * `lookahead-group.capclip` Pushed at col 3 (cap_start of + // group 2, which overlaps the consumed region). + // * The matching Pop no later than col 6 (clipped to match_end). + // * No op at col 7 or 8 — anything there means the lookahead + // range leaked past the match. + let lookahead_pushes: Vec = raw_ops + .iter() + .filter_map(|(pos, op)| match op { + ScopeStackOp::Push(s) if format!("{:?}", s).contains("lookahead-group") => { + Some(*pos) + } + _ => None, + }) + .collect(); + assert_eq!( + lookahead_pushes, + vec![3], + "`captures: 2:` (lookahead-internal group) must Push the \ + clipped scope at match_start=3; raw_ops={:?}", + raw_ops + ); + let match_end = 6; + let past_match: Vec<_> = raw_ops.iter().filter(|(pos, _)| *pos > match_end).collect(); + assert!( + past_match.is_empty(), + "No capture op should sit past match_end={}; found {:?}", + match_end, + past_match + ); + } + #[test] fn capture_sort_by_span_length() { // Kills: L709 replace - with + in exec_pattern (capture sort key) diff --git a/src/parsing/yaml_load.rs b/src/parsing/yaml_load.rs index d1194c48..00a4971b 100644 --- a/src/parsing/yaml_load.rs +++ b/src/parsing/yaml_load.rs @@ -611,16 +611,22 @@ impl SyntaxDefinition { fn parse_captures( map: &Hash, - regex_str: &str, + _regex_str: &str, state: &mut ParserState<'_>, ) -> Result { - let valid_indexes = get_consuming_capture_indexes(regex_str); + // Accept every numeric capture entry. Groups inside lookarounds are + // kept — `build_capture_ops` clips each capture's span to the rule's + // consumed match range at parse time, mirroring Sublime Text. An + // earlier version filtered lookaround-internal indices here on the + // assumption "those scopes are not applied," which produced silent + // drops for valid rules like C#'s generic function-call pattern. let mut captures = Vec::new(); for (key, value) in map.iter() { if let (Some(key_int), Some(val_str)) = (key.as_i64(), value.as_str()) { - if valid_indexes.contains(&(key_int as usize)) { - captures.push((key_int as usize, str_to_scopes(val_str, state.scope_repo)?)); + if key_int < 0 { + continue; } + captures.push((key_int as usize, str_to_scopes(val_str, state.scope_repo)?)); } } Ok(captures) @@ -945,101 +951,6 @@ impl RegexRewriterForNoNewlines<'_> { } } -fn get_consuming_capture_indexes(regex: &str) -> Vec { - let parser = ConsumingCaptureIndexParser { - parser: Parser::new(regex.as_bytes()), - }; - parser.get_consuming_capture_indexes() -} - -struct ConsumingCaptureIndexParser<'a> { - parser: Parser<'a>, -} - -impl ConsumingCaptureIndexParser<'_> { - /// Find capture groups which are not inside lookarounds. - /// - /// If, in a YAML syntax definition, a scope stack is applied to a capture group inside a - /// lookaround, (i.e. "captures:\n x: scope.stack goes.here", where "x" is the number of a - /// capture group in a lookahead/behind), those those scopes are not applied, so no need to - /// even parse them. - fn get_consuming_capture_indexes(mut self) -> Vec { - let mut result = Vec::new(); - let mut stack = Vec::new(); - let mut cap_num = 0; - let mut in_lookaround = false; - stack.push(in_lookaround); - result.push(cap_num); - - while let Some(c) = self.parser.peek() { - match c { - b'\\' => { - self.parser.next(); - self.parser.next(); - } - b'[' => { - self.parser.parse_character_class(); - } - b'(' => { - self.parser.next(); - // add the current lookaround state to the stack so we can just pop at a closing paren - stack.push(in_lookaround); - if let Some(c2) = self.parser.peek() { - if c2 != b'?' { - // simple numbered capture group - cap_num += 1; - // if we are not currently in a lookaround, - // add this capture group number to the valid ones - if !in_lookaround { - result.push(cap_num); - } - } else { - self.parser.next(); - if let Some(c3) = self.parser.peek() { - self.parser.next(); - if c3 == b'=' || c3 == b'!' { - // lookahead - in_lookaround = true; - } else if c3 == b'<' { - if let Some(c4) = self.parser.peek() { - if c4 == b'=' || c4 == b'!' { - self.parser.next(); - // lookbehind - in_lookaround = true; - } - } - } else if c3 == b'P' { - if let Some(c4) = self.parser.peek() { - if c4 == b'<' { - // named capture group - cap_num += 1; - // if we are not currently in a lookaround, - // add this capture group number to the valid ones - if !in_lookaround { - result.push(cap_num); - } - } - } - } - } - } - } - } - b')' => { - if let Some(value) = stack.pop() { - in_lookaround = value; - } - self.parser.next(); - } - _ => { - self.parser.next(); - } - } - } - result - } -} - struct Parser<'a> { bytes: &'a [u8], index: usize, @@ -1580,33 +1491,6 @@ mod tests { assert_eq!(&rewrite(r"(?<=\n)ab"), r"(?<=$)ab"); } - #[test] - fn can_get_valid_captures_from_regex() { - let regex = "hello(test)(?=(world))(foo(?Pbar))"; - println!("{:?}", regex); - let valid_indexes = get_consuming_capture_indexes(regex); - println!("{:?}", valid_indexes); - assert_eq!(valid_indexes, [0, 1, 3, 4]); - } - - #[test] - fn can_get_valid_captures_from_regex2() { - let regex = "hello(test)[(?=tricked](foo(bar))"; - println!("{:?}", regex); - let valid_indexes = get_consuming_capture_indexes(regex); - println!("{:?}", valid_indexes); - assert_eq!(valid_indexes, [0, 1, 2, 3]); - } - - #[test] - fn can_get_valid_captures_from_nested_regex() { - let regex = "hello(test)(?=(world(?!(te(?<=(st))))))(foo(bar))"; - println!("{:?}", regex); - let valid_indexes = get_consuming_capture_indexes(regex); - println!("{:?}", valid_indexes); - assert_eq!(valid_indexes, [0, 1, 5, 6]); - } - #[test] fn error_loading_syntax_with_unescaped_backslash() { let load_err = SyntaxDefinition::load_from_str( diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index 0050ba16..cf1891b1 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -1,8 +1,6 @@ loading syntax definitions from testdata/Packages -FAILED testdata/Packages/ASP/syntax_test_asp.asp: 53 FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 3 -FAILED testdata/Packages/C#/tests/syntax_test_Generics.cs: 3 FAILED testdata/Packages/Clojure/tests/syntax_test_clojure.clj: 1 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 @@ -17,7 +15,6 @@ FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 1 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 FAILED testdata/Packages/Rails/tests/syntax_test_rails.haml: 65 -FAILED testdata/Packages/Rails/tests/syntax_test_rails.html.erb: 23 FAILED testdata/Packages/ShellScript/Bash/tests/syntax_test_scope.bash: 1 FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 1 exiting with code 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index 0050ba16..cf1891b1 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -1,8 +1,6 @@ loading syntax definitions from testdata/Packages -FAILED testdata/Packages/ASP/syntax_test_asp.asp: 53 FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 3 -FAILED testdata/Packages/C#/tests/syntax_test_Generics.cs: 3 FAILED testdata/Packages/Clojure/tests/syntax_test_clojure.clj: 1 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 @@ -17,7 +15,6 @@ FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 1 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 FAILED testdata/Packages/Rails/tests/syntax_test_rails.haml: 65 -FAILED testdata/Packages/Rails/tests/syntax_test_rails.html.erb: 23 FAILED testdata/Packages/ShellScript/Bash/tests/syntax_test_scope.bash: 1 FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 1 exiting with code 1 From cd23cc98a8156da4ec1dc7c8a333faa2fd39048e Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Tue, 21 Apr 2026 21:38:19 +0200 Subject: [PATCH 03/52] Suppress cur meta_scope on pop: N + embed: match text MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ST drops the popped context's `meta_scope` and `meta_content_scope` from the trigger match's text for `pop: N + embed:`, unlike `pop: N + set:` which preserves both. Rules in the wild re-add the meta_scope atom explicitly in their match `scope:` so it still appears exactly once on the trigger — HTML (JSP).sublime-syntax's `tag-jsp-{declaration,expression,scriptlet}-attributes` all do. syntect's Embed → synthetic Set routing in `push_meta_ops` inherited plain-Set semantics, so cur.meta_scope stayed on the stack and the match's explicit scope duplicated it on top. Fix: when `pop_count > 0`, emit initial-phase Pops for cur's mcs and ms, then pass a scope-stripped clone of cur through to the recursive Set call so its non-initial `num_to_pop` doesn't double-account atoms that are already off the stack. Probe and ordering invariant in `v2_pop_embed_suppresses_cur_meta_scope_on_match`. Net syntest: Java/jsp 44 → 39 on both baselines (5 `- meta.tag.jsp meta.tag.jsp` assertions cleared). The other 39 are three unrelated root causes, not addressed here. Refs: #631 --- src/parsing/parser.rs | 156 ++++++++++++++++++++++ testdata/known_syntest_failures.txt | 2 +- testdata/known_syntest_failures_fancy.txt | 2 +- 3 files changed, 158 insertions(+), 2 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index c320d9ed..ef67e0be 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -1722,6 +1722,50 @@ impl ParseState { } else { MatchOperation::Push(contexts.clone()) }; + if pop_count > 0 { + // ST-observed divergence from plain `pop + set:`: on + // `pop + embed:` the trigger match's text sees **neither** + // `cur_context.meta_scope` nor `cur_context.meta_content_scope`. + // Both are suppressed on match text, then never restored + // — the embed replaces cur entirely. The probe lives at + // the top of `v2_pop_embed_suppresses_cur_meta_scope_on_match`. + // + // Emit those Pops ourselves in the initial phase, then pass + // a scope-stripped cur_context through to the recursive + // Set-semantic logic so its `num_to_pop` in the non-initial + // phase does not double-count these atoms (they are already + // off the stack). clear_scopes, with_prototype, and other + // fields are preserved on the stripped context — only the + // meta-scope vectors differ. + // + // Observed divergence on ``'s `>`: + // syntect was producing + // [..., meta.tag.jsp.declaration.begin.html, + // meta.tag.jsp.declaration.begin.html, + // punctuation.definition.tag.end.html] + // because the rule's explicit + // scope: meta.tag.jsp.declaration.begin.html + // punctuation.definition.tag.end.html + // was re-adding the atom that ST drops through the embed. + if initial { + if !cur_context.meta_content_scope.is_empty() { + ops.push(( + index, + ScopeStackOp::Pop(cur_context.meta_content_scope.len()), + )); + } + if !cur_context.meta_scope.is_empty() { + ops.push((index, ScopeStackOp::Pop(cur_context.meta_scope.len()))); + } + } + let stripped = Context { + meta_scope: Vec::new(), + meta_content_scope: Vec::new(), + ..cur_context.clone() + }; + return self + .push_meta_ops(initial, index, &stripped, &synthetic, syntax_set, ops); + } return self.push_meta_ops( initial, index, @@ -6219,4 +6263,116 @@ contexts: ); } } + + #[test] + fn v2_pop_embed_suppresses_cur_meta_scope_on_match() { + // `pop: N + embed:` trigger text must NOT carry the popped context's + // `meta_scope` through, unlike `pop: N + set:` which preserves both + // cur's and target's meta_scope on the match. Probe against ST confirms: + // + // hi (pop+embed) + // col 4 '>' -> ['source.host', 'end.scope'] (cur ms gone) + // col 5 'h' (body) -> ['source.host', 'embed.scope', 'guest.meta'] + // + // after (pop+set — contrast) + // col 4 '>' -> ['source.host', 'meta.a', 'after.meta', 'end.scope'] + // + // Without this guard, syntect emitted + // [source.host, meta.a, meta.a, end.scope] + // because the rule's explicit scope atom shadowed cur.meta_scope onto + // itself on the trigger text — observed as 5 duplicated + // `meta.tag.jsp.*.begin.html` atoms on ``/ expression/ + // scriptlet's `>` in `syntax_test_jsp.jsp`. + let host = SyntaxDefinition::load_from_str( + r#" +name: PopEmbedHost +scope: source.popembed +file_extensions: [popembed] +version: 2 +contexts: + main: + - match: '' + scope: meta.a end.scope + pop: 1 + embed: scope:source.popembedguest + embed_scope: embed.scope + escape: '(?=hi\n", &ss).unwrap().ops; + + // Walk (range, op) pairs; after applying each op, snapshot the stack + // keyed by the character position we're at. The `>` match occupies + // col 4, so we expect the post-op snapshot at that position to have + // exactly ONE `meta.a` atom, not two. + use crate::easy::ScopeRangeIterator; + let line = "hi\n"; + let mut stack = ScopeStack::new(); + let mut at_gt: Option> = None; + for (range, op) in ScopeRangeIterator::new(&ops, line) { + stack.apply(op).expect("op stream must apply cleanly"); + // Capture the stack state for the character range covering the `>` + // trigger (col 4..5, the match text of the pop+embed rule). + if range.start <= 4 && 4 < range.end { + at_gt = Some( + stack + .as_slice() + .iter() + .map(|s| format!("{:?}", s)) + .collect(), + ); + } + } + let at_gt = at_gt.expect("range covering `>` must exist in op stream"); + let meta_a_count = at_gt.iter().filter(|s| s.contains("meta.a")).count(); + assert_eq!( + meta_a_count, 1, + "match text of pop+embed must carry exactly one `meta.a` atom \ + (from the rule's explicit scope); cur_context.meta_scope must \ + not stack a second copy on top. Got stack: {:?}", + at_gt + ); + // And `end.scope` must be the top of the stack (the match's second + // explicit atom) — if the ordering shifted we'd see a different trailer. + assert!( + at_gt + .last() + .map(|s| s.contains("end.scope")) + .unwrap_or(false), + "stack top on `>` must be `end.scope`, got: {:?}", + at_gt + ); + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index cf1891b1..872d2313 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -7,7 +7,7 @@ FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Git Formats/tests/syntax_test_git_config: 17 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 -FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 44 +FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 1 FAILED testdata/Packages/LaTeX/tests/syntax_test_latex.tex: 76 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index cf1891b1..872d2313 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -7,7 +7,7 @@ FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Git Formats/tests/syntax_test_git_config: 17 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 -FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 44 +FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 1 FAILED testdata/Packages/LaTeX/tests/syntax_test_latex.tex: 76 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 1 From e9c022a21fe5710047d288be348c3f88ccc9425d Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Wed, 22 Apr 2026 21:14:16 +0200 Subject: [PATCH 04/52] Drain orphan scope atoms on outer escape fire A cross-line `fail` replay commits a Push(meta_scope) to `flushed_ops` for a speculative context; a later same-line `fail` for a branch_point created *during* the replay then truncates the owning context out of `self.stack` without emitting a balancing Pop (the Push is in `flushed_ops`, beyond `ops.truncate`'s reach). `exec_escape` pops based on the truncated stack, leaving an orphan atom at the top. Track a `shadow: ScopeStack` mirror of the consumer view, synced at `parse_line` boundaries the same way `syntest` applies `replayed` + `ops`. `exec_escape` now emits a corrective Pop for any atoms exceeding the sum of `self.stack`'s `meta_scope` / gated `meta_content_scope` contributions. Drops `syntax_test_latex.tex: 76` from both `testdata/known_syntest_failures{,_fancy}.txt`. --- src/parsing/parser.rs | 92 +++++++++++++++++++++++ testdata/known_syntest_failures.txt | 1 - testdata/known_syntest_failures_fancy.txt | 1 - 3 files changed, 92 insertions(+), 2 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index ef67e0be..92cb9909 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -90,6 +90,12 @@ pub struct ParseState { /// cross-line `fail` replay. Only the strings are stored; the ops are /// returned to callers immediately (same as before). pending_lines: Vec, + /// Snapshot of `shadow` at the start of each buffered line in + /// `pending_lines`. Used by the cross-line-fail replay to restore + /// `shadow` to its state at the first replayed line's beginning, so + /// the shadow mirrors what the consumer does (reset + apply + /// replayed). + pending_line_start_shadows: Vec, /// Corrected ops produced by a cross-line `fail` replay, to be returned /// as `ParseLineOutput::replayed` at the end of `parse_line`. flushed_ops: Vec>, @@ -99,6 +105,17 @@ pub struct ParseState { /// strict precedence over normal patterns — it is checked first and can /// truncate the search region. escape_stack: Vec, + /// Mirror of the consumer's scope stack. Updated at `parse_line` + /// boundaries (not mid-line) from the returned `ops` and + /// `replayed`, mirroring the consumer's behaviour (reset to the + /// first-replayed line's start, then apply replayed, then apply + /// current ops). `exec_escape` uses it to detect orphan atoms left + /// on the consumer's stack by a prior cross-line replay whose + /// later same-line fails truncated the owning context out of + /// `self.stack` (the Push for the atom is committed in + /// `flushed_ops`, so it can't be taken back by `ops.truncate`) — + /// and emits a balancing Pop before the normal escape pops. + shadow: ScopeStack, } /// A resolved escape pattern from an `embed` operation, stored on the escape stack. @@ -336,9 +353,11 @@ impl ParseState { branch_points: Vec::new(), line_number: 0, pending_lines: Vec::new(), + pending_line_start_shadows: Vec::new(), flushed_ops: Vec::new(), warnings: Vec::new(), escape_stack: Vec::new(), + shadow: ScopeStack::new(), } } @@ -385,18 +404,50 @@ impl ParseState { }); self.line_number += 1; + // Snapshot the shadow before parsing this line — if the parse ends + // with live branch_points we'll buffer this value alongside the + // line string so a future cross-line fail can restore the shadow + // to "state at start of first replayed line" (mirroring the + // consumer's reset behaviour in `syntest`). + let shadow_at_start = self.shadow.clone(); + let pending_lines_before = self.pending_lines.len(); + let ops = self.parse_line_inner(line, syntax_set)?; // Collect any corrected ops produced by a cross-line `fail` during the // parse above. These are stored by `handle_fail` in `self.flushed_ops`. let replayed = std::mem::take(&mut self.flushed_ops); + // Update shadow to reflect consumer's view at end of this line. + // The consumer (see `syntest`) resets its scope stack to + // `parsed_line_buffer[start_idx].stack_before` when `replayed` is + // non-empty, then applies replayed then applies current-line ops. + // Mirror that here so `shadow` matches the consumer downstream. + if !replayed.is_empty() { + let start_idx = pending_lines_before + .checked_sub(replayed.len()) + .unwrap_or(0); + if let Some(snap) = self.pending_line_start_shadows.get(start_idx) { + self.shadow = snap.clone(); + } + for line_ops in &replayed { + for (_, op) in line_ops { + let _ = self.shadow.apply(op); + } + } + } + for (_, op) in &ops { + let _ = self.shadow.apply(op); + } + // Keep the line string for potential future cross-line replay. if !self.branch_points.is_empty() { self.pending_lines.push(line.to_string()); + self.pending_line_start_shadows.push(shadow_at_start); } else { // No active branch points: any buffered strings are stale. self.pending_lines.clear(); + self.pending_line_start_shadows.clear(); } let warnings = std::mem::take(&mut self.warnings); @@ -1957,6 +2008,47 @@ impl ParseState { let target_depth = entry.stack_depth; let escape_captures = entry.captures.clone(); + // Drain orphan scope atoms left on the consumer's scope stack by + // a prior cross-line replay whose later same-line fails + // truncated the owning context out of `self.stack` — the Push + // was committed to `flushed_ops` and can't be unwound by + // `ops.truncate`, so we emit a balancing Pop here. Without this, + // e.g. LaTeX `\end{lstlisting}` leaves + // `meta.environment.verbatim.lstlisting.latex` on the stack + // because a speculative `meta.path.java` atom pushed inside the + // embedded Java shifts every subsequent Pop by one. + // + // `shadow` mirrors what the consumer will actually hold at this + // point: end-of-prior-line shadow + ops-so-far on the current + // line. `expected_depth` is what the consumer *should* have + // based on `self.stack`'s meta_scope / meta_content_scope + // contributions (with the v2 `embed_scope_replaces` mcs gating + // applied below, matching the pop loop). + let mut current_shadow = self.shadow.clone(); + for (_, op) in ops.iter() { + let _ = current_shadow.apply(op); + } + let consumer_depth = current_shadow.as_slice().len(); + let expected_depth: usize = { + let mut total = 0usize; + let mut prev_embed_scope_replaces = false; + for lvl in &self.stack { + let ctx = syntax_set.get_context(&lvl.context)?; + total += ctx.meta_scope.len(); + if !prev_embed_scope_replaces { + total += ctx.meta_content_scope.len(); + } + prev_embed_scope_replaces = ctx.embed_scope_replaces; + } + total + }; + if consumer_depth > expected_depth { + ops.push(( + match_start, + ScopeStackOp::Pop(consumer_depth - expected_depth), + )); + } + // Pop all stack levels down to target_depth, emitting proper meta scope pops while self.stack.len() > target_depth { let level = &self.stack[self.stack.len() - 1]; diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index 872d2313..bffea4ce 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -9,7 +9,6 @@ FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 1 -FAILED testdata/Packages/LaTeX/tests/syntax_test_latex.tex: 76 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 1 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index 872d2313..bffea4ce 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -9,7 +9,6 @@ FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 1 -FAILED testdata/Packages/LaTeX/tests/syntax_test_latex.tex: 76 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 1 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 1 From b185a2c7575815dce32d7849c128bd7b90b0038d Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Thu, 23 Apr 2026 00:04:24 +0200 Subject: [PATCH 05/52] Order apply_prototype external prototype before target main MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `IncludeWithPrototype` in `MatchIter` pushed the included target on top of the prototype, and `MatchIter::next` reads the stack top (`ctx_stack[len-1]`) — so the target's patterns were iterated first and the external prototype's second. The parser's tie-break on match_start is strict `<`, so whichever rule is enumerated first wins a same-position match. ST's `apply_prototype` semantics and `ParseState::find_best_match`'s own `context.prototype` chaining (`chain(cur_prototype).chain(cur_context)`) both put prototype patterns ahead of the target. Swap the two pushes so the prototype lands on top of the stack and is iterated first. Concretely: in HAML `tag-attributes-content`, `ruby-code` does `include: scope:source.ruby.rails.embedded.haml apply_prototype: true`. Ruby-for-HAML's prototype injects HAML's `pipe-continuations` (match `|\s*$`). Before this fix, Ruby's bitwise-or rule (`[~|^]`) at the same position was iterated first and won the tie, so `|` at EOL got `keyword.operator.bitwise.ruby` instead of `punctuation.separator.continuation.haml`; the attribute braces popped at the newline, and every continuation assertion below cascaded. After the swap, the prototype's pipe-continuation wins the tie. Refs: #631 --- src/parsing/syntax_definition.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/parsing/syntax_definition.rs b/src/parsing/syntax_definition.rs index 1849bebc..9a037004 100644 --- a/src/parsing/syntax_definition.rs +++ b/src/parsing/syntax_definition.rs @@ -274,17 +274,20 @@ impl<'a> Iterator for MatchIter<'a> { _ => return self.next(), }; let ctx_ptr = self.syntax_set.get_context(context_id).unwrap(); - // Also include the external syntax's prototype if the context allows it + // Push target first, then external prototype on top so + // its patterns are iterated first: `MatchIter::next` + // reads the stack top, and ST's `apply_prototype` runs + // the prototype ahead of the included context — mirror + // of `ParseState::find_best_match`'s prototype chaining. + self.ctx_stack.push(ctx_ptr); + self.index_stack.push(0); if ctx_ptr.meta_include_prototype.unwrap_or(true) { if let Some(ref proto_id) = ctx_ptr.prototype { let proto_ctx = self.syntax_set.get_context(proto_id).unwrap(); - // Push prototype first (it will be iterated first) self.ctx_stack.push(proto_ctx); self.index_stack.push(0); } } - self.ctx_stack.push(ctx_ptr); - self.index_stack.push(0); } } } else { From 69cd4b37f89677d1a6e1544986d1ce41a8558473 Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Thu, 23 Apr 2026 07:16:51 +0200 Subject: [PATCH 06/52] Cover apply_prototype external-prototype precedence Strengthens the existing `apply_prototype_includes_external_prototype` from build-only to parse-and-assert. Adds precedence, opt-out, and HAML-Rails end-to-end guards alongside it in `src/parsing/syntax_set.rs`. Refs: #631 --- src/parsing/syntax_set.rs | 155 +++++++++++++++++++++++++++++++++++++- 1 file changed, 153 insertions(+), 2 deletions(-) diff --git a/src/parsing/syntax_set.rs b/src/parsing/syntax_set.rs index 328527da..5341feb1 100644 --- a/src/parsing/syntax_set.rs +++ b/src/parsing/syntax_set.rs @@ -2576,8 +2576,159 @@ mod tests { builder.add(syntax_using_proto); let ss = builder.build(); - // Just verify it builds without errors and the syntax exists - assert!(ss.find_syntax_by_name("UsingProto").is_some()); + let syntax = ss.find_syntax_by_name("UsingProto").unwrap(); + let mut parse_state = ParseState::new(syntax); + let ops = parse_state.parse_line("#", &ss).expect("#[cfg(test)]").ops; + // The external `prototype`'s `#` rule must be reachable from the + // including context via `apply_prototype: true`. + let expected = (0, ScopeStackOp::Push(Scope::new("comment.proto").unwrap())); + assert_ops_contain(&ops, &expected); + } + + #[test] + fn apply_prototype_prototype_wins_tie_over_target_main() { + // Both the target's `main` and its `prototype` match `|` at the same + // position. ST's `apply_prototype` semantics put the prototype ahead + // of the target, so the prototype's scope wins the tie. + let target = SyntaxDefinition::load_from_str( + r#" + name: Target + scope: source.target + file_extensions: [t] + contexts: + prototype: + - match: '\|' + scope: proto.pipe + main: + - match: '\|' + scope: target.bitor + "#, + true, + None, + ) + .unwrap(); + + let outer = SyntaxDefinition::load_from_str( + r#" + name: Outer + scope: source.outer + file_extensions: [o] + contexts: + main: + - include: scope:source.target + apply_prototype: true + "#, + true, + None, + ) + .unwrap(); + + let mut builder = SyntaxSetBuilder::new(); + builder.add(target); + builder.add(outer); + let ss = builder.build(); + + let syntax = ss.find_syntax_by_name("Outer").unwrap(); + let mut parse_state = ParseState::new(syntax); + let ops = parse_state.parse_line("|", &ss).expect("#[cfg(test)]").ops; + assert_ops_contain( + &ops, + &(0, ScopeStackOp::Push(Scope::new("proto.pipe").unwrap())), + ); + assert!( + !ops.iter() + .any(|(_, op)| matches!(op, ScopeStackOp::Push(s) if s == &Scope::new("target.bitor").unwrap())), + "target main's `|` rule must not pre-empt the external prototype's `|` rule: {:?}", + ops, + ); + } + + #[test] + fn apply_prototype_respects_meta_include_prototype_false() { + // When the include target opts out of prototype inclusion, the + // external prototype must NOT be injected even with + // `apply_prototype: true` on the include. + let target = SyntaxDefinition::load_from_str( + r#" + name: Target + scope: source.target + file_extensions: [t] + contexts: + prototype: + - match: '\|' + scope: proto.pipe + main: + - meta_include_prototype: false + - match: '\|' + scope: target.bitor + "#, + true, + None, + ) + .unwrap(); + + let outer = SyntaxDefinition::load_from_str( + r#" + name: Outer + scope: source.outer + file_extensions: [o] + contexts: + main: + - include: scope:source.target + apply_prototype: true + "#, + true, + None, + ) + .unwrap(); + + let mut builder = SyntaxSetBuilder::new(); + builder.add(target); + builder.add(outer); + let ss = builder.build(); + + let syntax = ss.find_syntax_by_name("Outer").unwrap(); + let mut parse_state = ParseState::new(syntax); + let ops = parse_state.parse_line("|", &ss).expect("#[cfg(test)]").ops; + assert_ops_contain( + &ops, + &(0, ScopeStackOp::Push(Scope::new("target.bitor").unwrap())), + ); + assert!( + !ops.iter() + .any(|(_, op)| matches!(op, ScopeStackOp::Push(s) if s == &Scope::new("proto.pipe").unwrap())), + "prototype must stay out when target's `meta_include_prototype: false`: {:?}", + ops, + ); + } + + #[test] + fn haml_pipe_continuation_wins_over_ruby_bitor() { + // Real-package regression guard for the fix: inside HAML attribute + // braces, a trailing `|` must scope as HAML's pipe-continuation + // (injected via Ruby-for-HAML's prototype under `apply_prototype`), + // not as Ruby's bitwise-or operator. + let ss = &*testdata::PACKAGES_SYN_SET; + let syntax = ss.find_syntax_by_name("HAML").unwrap(); + let mut parse_state = ParseState::new(syntax); + let ops = parse_state + .parse_line("%p{:a => 1, |", ss) + .expect("#[cfg(test)]") + .ops; + let pipe_cont = Scope::new("punctuation.separator.continuation.haml").unwrap(); + let ruby_bitor = Scope::new("keyword.operator.bitwise.ruby").unwrap(); + assert!( + ops.iter() + .any(|(_, op)| matches!(op, ScopeStackOp::Push(s) if s == &pipe_cont)), + "expected punctuation.separator.continuation.haml push: {:?}", + ops, + ); + assert!( + !ops.iter() + .any(|(_, op)| matches!(op, ScopeStackOp::Push(s) if s == &ruby_bitor)), + "Ruby bitwise-or must not win over HAML pipe-continuation: {:?}", + ops, + ); } // ===================================================== From 347ea765233cbdb2ad8bdfd0d08fa2e510bd917e Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Thu, 23 Apr 2026 07:16:55 +0200 Subject: [PATCH 07/52] Drop HAML-Rails from syntest baselines All 65 assertions in `syntax_test_rails.haml` pass after the apply_prototype ordering fix. Delta applies to both baselines. --- testdata/known_syntest_failures.txt | 1 - testdata/known_syntest_failures_fancy.txt | 1 - 2 files changed, 2 deletions(-) diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index bffea4ce..fdb80732 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -13,7 +13,6 @@ FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 1 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 1 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 -FAILED testdata/Packages/Rails/tests/syntax_test_rails.haml: 65 FAILED testdata/Packages/ShellScript/Bash/tests/syntax_test_scope.bash: 1 FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 1 exiting with code 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index bffea4ce..fdb80732 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -13,7 +13,6 @@ FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 1 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 1 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 -FAILED testdata/Packages/Rails/tests/syntax_test_rails.haml: 65 FAILED testdata/Packages/ShellScript/Bash/tests/syntax_test_scope.bash: 1 FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 1 exiting with code 1 From 17e46c4fe55fc4f8b6c136172dedb210a01222bf Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Thu, 23 Apr 2026 08:44:45 +0200 Subject: [PATCH 08/52] Wrap past-EOL syntest assertions to next-line scopes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ST's `text_point(row, col)` overflows past-EOL columns into the next row, so its syntax-test framework evaluates past-EOL assertions against the corresponding column on the next line. syntect's harness was instead testing against the consumed `\n`'s scope — silent divergence whenever the `\n` carried parent meta_scopes that the EOL pop chain dropped. Reorder the loop to parse-before-assert; thread the first post-target line's scopes into `process_assertions` (`examples/syntest.rs`); fall back to the previous behaviour when next-line scopes aren't available (EOF, replay path). Closes 17 `syntax_test_git_config` and 1 `syntax_test_clojure` stale baselines. Refs: #631 --- examples/syntest.rs | 329 +++++++++++++++++----- testdata/known_syntest_failures.txt | 2 - testdata/known_syntest_failures_fancy.txt | 2 - 3 files changed, 256 insertions(+), 77 deletions(-) diff --git a/examples/syntest.rs b/examples/syntest.rs index f65ff25b..8a4385af 100644 --- a/examples/syntest.rs +++ b/examples/syntest.rs @@ -278,6 +278,7 @@ fn get_line_assertion_details<'a>( fn process_assertions( assertion: &AssertionRange<'_>, test_against_line_scopes: &[ScopedText], + next_line_scopes: Option<&[ScopedText]>, ) -> Vec { // format the scope selector to include a space at the beginning, because, currently, ScopeSelector expects excludes to begin with " -" // and they are sometimes in the syntax test as ^^^-comment, for example @@ -301,16 +302,59 @@ fn process_assertions( }; results.push(result); } - // don't ignore assertions after the newline, they should be treated as though they are asserting against the newline + // Past-EOL columns: ST's `view.text_point(row, col)` overflows into the + // next row when `col` exceeds the current line's char count, so its + // syntax-test framework evaluates past-EOL assertions against the + // corresponding column on the line below. Mirror that here when we have + // the next line's scopes; otherwise fall back to the last char's scope. let last = test_against_line_scopes.last().unwrap(); - if last.char_start + last.text_len < assertion.end_char { - let match_value = selector.does_match(last.scope.as_slice()); - let result = RangeTestResult { - column_begin: max(last.char_start + last.text_len, assertion.begin_char), - column_end: assertion.end_char, - success: match_value.is_some(), - }; - results.push(result); + let last_end = last.char_start + last.text_len; + if last_end < assertion.end_char { + let past_eol_begin = max(last_end, assertion.begin_char); + let past_eol_end = assertion.end_char; + if let Some(next_scopes) = next_line_scopes.filter(|s| !s.is_empty()) { + // Wrap formula: position `col` past EOL of a line of total length + // `last_end` (chars including trailing `\n`) lands on column + // `col - last_end` of the next line. + let wrap_begin = past_eol_begin - last_end; + let wrap_end = past_eol_end - last_end; + let mut covered = wrap_begin; + for scoped_text in next_scopes + .iter() + .skip_while(|s| s.char_start + s.text_len <= wrap_begin) + .take_while(|s| s.char_start < wrap_end) + { + let next_begin = max(scoped_text.char_start, wrap_begin); + let next_end = min(scoped_text.char_start + scoped_text.text_len, wrap_end); + let match_value = selector.does_match(scoped_text.scope.as_slice()); + results.push(RangeTestResult { + column_begin: next_begin + last_end, + column_end: next_end + last_end, + success: match_value.is_some(), + }); + covered = next_end; + } + // Wrap target extends past the next line's content too — recursive + // wrap is not yet implemented; fall back to the next line's last + // scope so the assertion still gets a defined verdict instead of + // silently passing. + if covered < wrap_end { + let next_last = next_scopes.last().unwrap(); + let match_value = selector.does_match(next_last.scope.as_slice()); + results.push(RangeTestResult { + column_begin: covered + last_end, + column_end: past_eol_end, + success: match_value.is_some(), + }); + } + } else { + let match_value = selector.does_match(last.scope.as_slice()); + results.push(RangeTestResult { + column_begin: past_eol_begin, + column_end: past_eol_end, + success: match_value.is_some(), + }); + } } results } @@ -368,7 +412,14 @@ fn test_file( let mut current_line_number = 1; let mut test_against_line_number = 1; - let mut scopes_on_line_being_tested = Vec::new(); + let mut scopes_on_line_being_tested: Vec = Vec::new(); + // Scopes of the first line that follows the current target line. ST's + // syntax-test framework evaluates past-EOL assertion columns against the + // corresponding column on the next line (because `text_point(row, col)` + // overflows into the next row when `col` exceeds the row's length); we + // mirror that by remembering the next line's scopes once and feeding + // them into `process_assertions`. Reset whenever the target line changes. + let mut next_target_line_scopes: Option> = None; let mut previous_non_assertion_line = line.to_string(); let mut assertion_failures: usize = 0; @@ -383,61 +434,21 @@ fn test_file( loop { // over lines of file, starting with the header line - let mut line_only_has_assertion = false; - let mut line_has_assertion = false; - if let Some(assertion) = get_line_assertion_details(testtoken_start, testtoken_end, &line) { - // `@+` and `>` lines are annotation-only (reference labels / reference - // assertions). They must be recognised so they do not drive - // `test_against_line_number`, but we do not yet implement - // cross-line label lookups, so no scope checks run here. - let mut current_assertion_failures: usize = 0; - if !assertion.is_reference { - let result = process_assertions(&assertion, &scopes_on_line_being_tested); - total_assertions += assertion.end_char - assertion.begin_char; - for failure in result.iter().filter(|r| !r.success) { - let length = failure.column_end - failure.column_begin; - let text: String = previous_non_assertion_line - .chars() - .skip(failure.column_begin) - .take(length) - .collect(); - pending_messages.push(BufferedFailureMessage { - selector_text: assertion.scope_selector_text.trim().to_string(), - assertion_line_number: current_line_number, - test_against_line_number, - column_begin: failure.column_begin, - column_end: failure.column_end, - text, - scope: scopes_on_line_being_tested - .iter() - .find(|s| s.char_start + s.text_len > failure.column_begin) - .unwrap_or_else(|| scopes_on_line_being_tested.last().unwrap()) - .scope - .clone(), - }); - assertion_failures += failure.column_end - failure.column_begin; - current_assertion_failures += failure.column_end - failure.column_begin; - } - // Buffer this assertion for re-evaluation if backtracking replays the target line - if let Some(idx) = current_test_line_buffer_idx { - if let Some(ref mut data) = parsed_line_buffer[idx].non_assertion_data { - data.assertions.push(BufferedAssertion { - begin_char: assertion.begin_char, - end_char: assertion.end_char, - scope_selector_text: assertion.scope_selector_text.to_string(), - assertion_line_number: current_line_number, - }); - data.assertion_failures += current_assertion_failures; - } - } - } // end `if !assertion.is_reference` - line_only_has_assertion = assertion.is_pure_assertion_line; - line_has_assertion = true; - } + let assertion_opt = get_line_assertion_details(testtoken_start, testtoken_end, &line); + let line_has_assertion = assertion_opt.is_some(); + let line_only_has_assertion = assertion_opt + .as_ref() + .map(|a| a.is_pure_assertion_line) + .unwrap_or(false); + + // Parse first so the just-parsed scopes are available when the + // assertion runs immediately after — needed for past-EOL wrap on the + // first assertion line after a target. if !line_only_has_assertion || parse_test_lines { if !line_has_assertion { // ST seems to ignore lines that have assertions when calculating which line the assertion tests against scopes_on_line_being_tested.clear(); + next_target_line_scopes = None; test_against_line_number = current_line_number; previous_non_assertion_line = line.to_string(); } @@ -532,7 +543,12 @@ fn test_file( // above, so replays never hit reference lines. is_reference: false, }; - let result = process_assertions(&temp_assertion, &new_scoped); + // Replay path: fall back to the previous + // past-EOL semantics by passing no next-line + // scopes. Replays are rare and per-target; + // recomputing the next line's scopes here + // would require also replaying its ops. + let result = process_assertions(&temp_assertion, &new_scoped, None); for failure in result.iter().filter(|r| !r.success) { let length = failure.column_end - failure.column_begin; let text: String = record @@ -583,6 +599,13 @@ fn test_file( debug_print_ops(&line, &ops); } } + // Build the just-parsed line's scopes. For non-assertion (target) + // lines they go into `scopes_on_line_being_tested`; for the FIRST + // assertion line that follows a target they go into a fresh vec + // that becomes `next_target_line_scopes` (used for past-EOL wrap). + // Subsequent assertion lines don't need their scopes captured. + let capture_for_next_target = line_has_assertion && next_target_line_scopes.is_none(); + let mut next_target_buffer: Vec = Vec::new(); let mut col: usize = 0; for (s, op) in ScopeRegionIterator::new(&ops, &line) { if let Err(_) = stack.apply(op) { @@ -599,17 +622,23 @@ fn test_file( // in this case we don't care about blank tokens continue; } + let len = s.chars().count(); + let scoped = ScopedText { + char_start: col, + text_len: len, + scope: stack.as_slice().to_vec(), + }; if !line_has_assertion { // if the line has no assertions on it, remember the scopes on the line so we can test against them later - let len = s.chars().count(); - scopes_on_line_being_tested.push(ScopedText { - char_start: col, - text_len: len, - scope: stack.as_slice().to_vec(), - }); - // TODO: warn when there are duplicate adjacent (non-meta?) scopes, as it is almost always undesired - col += len; + scopes_on_line_being_tested.push(scoped); + } else if capture_for_next_target { + next_target_buffer.push(scoped); } + // TODO: warn when there are duplicate adjacent (non-meta?) scopes, as it is almost always undesired + col += len; + } + if capture_for_next_target { + next_target_line_scopes = Some(next_target_buffer); } // Buffer this parsed line for potential future replay @@ -630,13 +659,67 @@ fn test_file( if !line_has_assertion { current_test_line_buffer_idx = Some(parsed_line_buffer.len() - 1); } + } - // Flush buffered failure messages once the parser commits - if !state.is_speculative() { - flush_pending_messages(&mut pending_messages, out_opts.summary); + // Process the assertion (after parsing, so past-EOL wrap can see the + // current line's scopes via `next_target_line_scopes`). + if let Some(assertion) = assertion_opt { + // `@+` and `>` lines are annotation-only (reference labels / + // reference assertions). They must be recognised so they do not + // drive `test_against_line_number`, but we do not yet implement + // cross-line label lookups, so no scope checks run here. + let mut current_assertion_failures: usize = 0; + if !assertion.is_reference { + let result = process_assertions( + &assertion, + &scopes_on_line_being_tested, + next_target_line_scopes.as_deref(), + ); + total_assertions += assertion.end_char - assertion.begin_char; + for failure in result.iter().filter(|r| !r.success) { + let length = failure.column_end - failure.column_begin; + let text: String = previous_non_assertion_line + .chars() + .skip(failure.column_begin) + .take(length) + .collect(); + pending_messages.push(BufferedFailureMessage { + selector_text: assertion.scope_selector_text.trim().to_string(), + assertion_line_number: current_line_number, + test_against_line_number, + column_begin: failure.column_begin, + column_end: failure.column_end, + text, + scope: scopes_on_line_being_tested + .iter() + .find(|s| s.char_start + s.text_len > failure.column_begin) + .unwrap_or_else(|| scopes_on_line_being_tested.last().unwrap()) + .scope + .clone(), + }); + assertion_failures += failure.column_end - failure.column_begin; + current_assertion_failures += failure.column_end - failure.column_begin; + } + // Buffer this assertion for re-evaluation if backtracking replays the target line + if let Some(idx) = current_test_line_buffer_idx { + if let Some(ref mut data) = parsed_line_buffer[idx].non_assertion_data { + data.assertions.push(BufferedAssertion { + begin_char: assertion.begin_char, + end_char: assertion.end_char, + scope_selector_text: assertion.scope_selector_text.to_string(), + assertion_line_number: current_line_number, + }); + data.assertion_failures += current_assertion_failures; + } + } } } + // Flush buffered failure messages once the parser commits + if !state.is_speculative() { + flush_pending_messages(&mut pending_messages, out_opts.summary); + } + line.clear(); current_line_number += 1; if reader.read_line(&mut line).unwrap() == 0 { @@ -923,4 +1006,104 @@ mod tests { let a = details(CC, None, "// @@@").unwrap(); assert!(a.is_reference); } + + /// Build a `ScopedText` from a string of space-separated scope atoms. + fn st(char_start: usize, text_len: usize, scopes: &str) -> ScopedText { + ScopedText { + char_start, + text_len, + scope: scopes + .split_whitespace() + .map(|s| Scope::new(s).unwrap()) + .collect(), + } + } + fn assertion_range(begin_char: usize, end_char: usize, sel: &str) -> AssertionRange<'_> { + AssertionRange { + begin_char, + end_char, + scope_selector_text: sel, + is_pure_assertion_line: true, + is_reference: false, + } + } + + #[test] + fn past_eol_negative_assertion_uses_next_line_wrap() { + // git_config-shaped: the consumed `\n` of the target line still + // carries the parent meta_scope (`meta.section`), but the next line + // is a comment whose scope does not include `meta.section`. + // Negative past-EOL assertion `- meta.section` must pass. + let target = vec![ + st(0, 1, "text meta.section punctuation.section.brackets.begin"), + st( + 28, + 1, + "text meta.section meta.brackets invalid.illegal.unexpected.eol", + ), + ]; + let next = vec![ + st(0, 1, "text comment.line punctuation.definition.comment"), + st(1, 1, "text comment.line"), + ]; + let a = assertion_range(29, 30, "- meta.section"); + let r = process_assertions(&a, &target, Some(&next)); + assert_eq!(r.len(), 1); + assert!(r[0].success, "expected pass via wrap to next line: {r:?}"); + } + + #[test] + fn past_eol_positive_assertion_matches_next_line_scope() { + // Past-EOL assertion expecting `comment.line` finds it on the next + // line — both git_config (lines 554-555) and Clojure (line 33) work + // this way in ST. + let target = vec![ + st( + 0, + 1, + "text meta.mapping.value string.quoted.double punctuation.definition.string.end", + ), + st(81, 1, "text"), + ]; + let next = vec![ + st(0, 1, "text comment.line punctuation.definition.comment"), + st(1, 14, "text comment.line"), + ]; + let a = assertion_range(82, 97, "comment.line"); + let r = process_assertions(&a, &target, Some(&next)); + assert!( + r.iter().all(|res| res.success), + "expected all wrap segments to pass: {r:?}", + ); + } + + #[test] + fn past_eol_falls_back_when_next_line_unavailable() { + // Without next-line scopes (end-of-file or replay path), keep the + // previous behaviour of testing against the last char's scope. + let target = vec![st(0, 5, "text constant.numeric"), st(5, 1, "text")]; + let a_pass = assertion_range(6, 7, "- constant.numeric"); + let r_pass = process_assertions(&a_pass, &target, None); + assert_eq!(r_pass.len(), 1); + assert!(r_pass[0].success); + let a_fail = assertion_range(6, 7, "constant.numeric"); + let r_fail = process_assertions(&a_fail, &target, None); + assert_eq!(r_fail.len(), 1); + assert!(!r_fail[0].success); + } + + #[test] + fn past_eol_wrap_overshooting_next_line_uses_next_line_last_scope() { + // When the wrap target extends past the next line's content too, + // fall back to the next line's last scope (recursive wrap is a v2 + // concern). The verdict must still be defined, not silently skipped. + let target = vec![st(0, 1, "text"), st(1, 1, "text")]; + let next = vec![st(0, 3, "text source.x")]; + // Wrap range: cols [2, 8) on target → cols [0, 6) on next. + // Cols [3, 6) on next overshoot the 3-char `next` and should fall + // back to the next-line last scope (`text source.x`). + let a = assertion_range(2, 8, "source.x"); + let r = process_assertions(&a, &target, Some(&next)); + assert!(r.iter().all(|res| res.success), "got: {r:?}"); + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index fdb80732..e56ffcaa 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -1,10 +1,8 @@ loading syntax definitions from testdata/Packages FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 3 -FAILED testdata/Packages/Clojure/tests/syntax_test_clojure.clj: 1 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 -FAILED testdata/Packages/Git Formats/tests/syntax_test_git_config: 17 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index fdb80732..e56ffcaa 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -1,10 +1,8 @@ loading syntax definitions from testdata/Packages FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 3 -FAILED testdata/Packages/Clojure/tests/syntax_test_clojure.clj: 1 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 -FAILED testdata/Packages/Git Formats/tests/syntax_test_git_config: 17 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 From b1b543838f7739594793eb43e6017be1ed9e6690 Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Thu, 23 Apr 2026 19:55:29 +0100 Subject: [PATCH 09/52] Dedup flushed_ops across multi-fail parse_line calls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two cross-line branches failing on the same parse_line grew `flushed_ops` by append, so `ParseLineOutput::replayed` doubled and consumers that pair `replayed[i]` with the i-th pending line slid ops from one buffered line onto another's text. Observed as the byte-77 panic at `syntax_test_java.java` line 624. Track `flushed_ops_start` alongside `flushed_ops` and merge subsequent fails against the prior snapshot's range. See `ParseState::merge_flushed` docs for the composition rule. `known_syntest_failures{,_fancy}` absorb the unmasking: Python / TypeScript / Bash / Zsh files previously panicking now report their real path-1 counts. Java stays at `1` — next panic site is a pre-existing stale-`line_number` on branches created during replay, tracked as follow-up. Refs: #631 --- src/parsing/parser.rs | 130 +++++++++++++++++++++- testdata/known_syntest_failures.txt | 10 +- testdata/known_syntest_failures_fancy.txt | 10 +- 3 files changed, 135 insertions(+), 15 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index 92cb9909..485fecb2 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -97,8 +97,12 @@ pub struct ParseState { /// replayed). pending_line_start_shadows: Vec, /// Corrected ops produced by a cross-line `fail` replay, to be returned - /// as `ParseLineOutput::replayed` at the end of `parse_line`. + /// as `ParseLineOutput::replayed` at the end of `parse_line`. When + /// populated, entry `i` corresponds to `pending_lines[flushed_ops_start + i]`. flushed_ops: Vec>, + /// Pending-lines index that `flushed_ops[0]` maps to when `flushed_ops` + /// is non-empty. Reset to `None` between `parse_line` calls. + flushed_ops_start: Option, /// Warnings accumulated during parsing, drained into `ParseLineOutput`. warnings: Vec, /// Active escape patterns from embed operations. The escape regex takes @@ -355,6 +359,7 @@ impl ParseState { pending_lines: Vec::new(), pending_line_start_shadows: Vec::new(), flushed_ops: Vec::new(), + flushed_ops_start: None, warnings: Vec::new(), escape_stack: Vec::new(), shadow: ScopeStack::new(), @@ -417,6 +422,7 @@ impl ParseState { // Collect any corrected ops produced by a cross-line `fail` during the // parse above. These are stored by `handle_fail` in `self.flushed_ops`. let replayed = std::mem::take(&mut self.flushed_ops); + self.flushed_ops_start = None; // Update shadow to reflect consumer's view at end of this line. // The consumer (see `syntest`) resets its scope stack to @@ -1033,6 +1039,37 @@ impl ParseState { } } + /// Merge a cross-line replay's per-line corrected ops into `flushed_ops`. + /// + /// Multiple cross-line fails can fire on a single `parse_line` call (e.g. + /// Java line 624 with two live branches from line 615, both snapshotted at + /// `pending_lines_snapshot_len = 0`). Each fail's replay covers + /// `pending_lines[snap..pending_lines.len())`. A naive `extend` leaves + /// `flushed_ops` with duplicates — consumers of `ParseLineOutput::replayed` + /// index `replayed[i] ↔ pending_lines[i]` by `buf_len - replayed.len()`, + /// so duplicates misalign every byte offset. + /// + /// Composition rule, given current start `a` and new fail's `snap`: + /// - `snap <= a`: new fail supersedes everything; replace. + /// - `snap > a`: keep `[a..snap)` from prior fails, replace `[snap..N)`. + fn merge_flushed(&mut self, snap: usize, new_ops: Vec>) { + match self.flushed_ops_start { + None => { + self.flushed_ops = new_ops; + self.flushed_ops_start = Some(snap); + } + Some(start) if snap <= start => { + self.flushed_ops = new_ops; + self.flushed_ops_start = Some(snap); + } + Some(start) => { + let keep = snap - start; + self.flushed_ops.truncate(keep); + self.flushed_ops.extend(new_ops); + } + } + } + /// Handle a `fail` operation by rewinding to the named branch point. /// Returns Ok(true) if backtracking happened (caller should continue from rewound position). /// Returns Ok(false) if the fail had no effect. @@ -1166,7 +1203,7 @@ impl ParseState { }; replayed_ops.push(line_ops); } - self.flushed_ops.extend(replayed_ops); + self.merge_flushed(pending_lines_snapshot_len, replayed_ops); // Restart the current line from the beginning under the // restored state. @@ -1316,9 +1353,7 @@ impl ParseState { }; replayed_ops.push(line_ops); } - // Append (rather than overwrite) in case multiple cross-line fails - // fire on the same parse_line call. - self.flushed_ops.extend(replayed_ops); + self.merge_flushed(pending_lines_snapshot_len, replayed_ops); // Restart the current line from the beginning. ops.clear(); @@ -6467,4 +6502,89 @@ contexts: at_gt ); } + + #[test] + fn cross_line_multi_fail_deduplicates_flushed_ops() { + // Two nested branch_points created on line 1 that both fail on a + // later line exercise `handle_fail`'s cross-line path twice on a + // single `parse_line` call. Before dedup, each fail `extend`ed + // `flushed_ops` with its own replay, so `ParseLineOutput::replayed` + // ended up ~2× the pending-lines count — and the consumer (see + // `examples/syntest.rs`) paired `replayed[i]` with + // `parsed_line_buffer[buf_len - replayed.len() + i]`, sliding ops + // from one buffered line onto another's text. That panicked in + // `ScopeRegionIterator::next` as "byte index N out of bounds" — + // observed originally at `syntax_test_java.java` line 624. + let syntax_str = r#" +name: DedupCrossLine +scope: source.dup +contexts: + main: + - match: 'A' + branch_point: bp1 + branch: [a1, a2] + a1: + - match: 'B' + branch_point: bp2 + branch: [b1, b2] + - match: '(?=FAIL)' + fail: bp1 + a2: + - match: '.*' + scope: a2.fallback + pop: true + b1: + - match: '\n' + - match: '(?=FAIL)' + fail: bp2 + - match: 'XYZ' + pop: true + b2: + - match: '\n' + - match: '(?=FAIL)' + fail: bp2 + - match: 'XYZ' + pop: true +"#; + let syntax = SyntaxDefinition::load_from_str(syntax_str, true, None).unwrap(); + let ss = link(syntax); + let mut state = ParseState::new(&ss.syntaxes()[0]); + + let out1 = state.parse_line("AB\n", &ss).expect("line 1"); + assert!(out1.replayed.is_empty()); + + let out2 = state.parse_line("FOO\n", &ss).expect("line 2"); + assert!(out2.replayed.is_empty()); + + // Line 3 fires `fail: bp2` twice (once for alt[1], once to exhaust) + // and then `fail: bp1` — three cross-line fails back-to-back. + let out3 = state.parse_line("FAIL\n", &ss).expect("line 3"); + + // Invariant: one replayed entry per buffered pending line (2), not + // `number_of_fails × pending_lines`. + assert_eq!( + out3.replayed.len(), + 2, + "expected exactly 2 replayed lines (one per buffered pending line), got {}: {:?}", + out3.replayed.len(), + out3.replayed, + ); + + // Panic guard: each `replayed[i]`'s byte offsets must fit within the + // corresponding buffered line's length. The original misalignment + // paired line 617's ops (77 bytes) with line 609's text (59 bytes). + let line_lens = ["AB\n".len(), "FOO\n".len()]; + for (i, line_ops) in out3.replayed.iter().enumerate() { + for (pos, op) in line_ops { + assert!( + *pos <= line_lens[i], + "replayed[{}] op past EOL: pos={} line_len={} op={:?}", + i, + pos, + line_lens[i], + op, + ); + } + } + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index e56ffcaa..611c611e 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -1,16 +1,16 @@ loading syntax definitions from testdata/Packages FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 -FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 3 +FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 -FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 1 +FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 230 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 1 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 -FAILED testdata/Packages/Python/tests/syntax_test_python.py: 1 +FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 -FAILED testdata/Packages/ShellScript/Bash/tests/syntax_test_scope.bash: 1 -FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 1 +FAILED testdata/Packages/ShellScript/Bash/tests/syntax_test_scope.bash: 249 +FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 604 exiting with code 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index e56ffcaa..611c611e 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -1,16 +1,16 @@ loading syntax definitions from testdata/Packages FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 -FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 3 +FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 -FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 1 +FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 230 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 1 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 -FAILED testdata/Packages/Python/tests/syntax_test_python.py: 1 +FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 -FAILED testdata/Packages/ShellScript/Bash/tests/syntax_test_scope.bash: 1 -FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 1 +FAILED testdata/Packages/ShellScript/Bash/tests/syntax_test_scope.bash: 249 +FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 604 exiting with code 1 From 78da6c46a492bf12579e52c74006d7ec9439f318 Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Thu, 23 Apr 2026 20:42:33 +0100 Subject: [PATCH 10/52] Anchor replay-born branches to their replay line MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Branches created while `handle_fail` re-parses a buffered past line snapshotted `self.line_number` / `self.pending_lines.len()`, which still reflect the *outer* `parse_line`'s current line. A later fail on the outer line would then see `bp.line_number == cur_line`, classify the branch as same-line, and apply the branch's replay-line-relative `match_start` to a shorter outer line — shipped as `byte index 20 out of bounds of " foo = BAR,\n"` on `syntax_test_java.java:10263` inside `@MultiLineAnnotation(...)`, and the matching byte-2 panic in `syntax_test_markdown.md`'s multi-line math blocks. Introduce a `replay_ctx: Option` set around each inner `parse_line_inner*` call in both replay loops. Branch creation and `handle_fail`'s `cur_line` read through it, so branches born in the re-parse of line `L+i` record `line_number = L+i` and `pending_lines_snapshot_len = `. Baselines absorb the unmasking: TypeScript drops 230 to 12 (cascading replay-branch misclassifications fixed), Markdown moves 1 to 897 (the `1` was the byte-2 panic artefact; real count surfaces). `syntax_test_java.java` stays at `1`: a distinct pre-existing `NoClearedScopesToRestore` surfaces further into the same file, tracked as a follow-up. Refs: #631 --- src/parsing/parser.rs | 187 ++++++++++++++++++++-- testdata/known_syntest_failures.txt | 4 +- testdata/known_syntest_failures_fancy.txt | 4 +- 3 files changed, 179 insertions(+), 16 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index 485fecb2..04da8e1f 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -120,6 +120,29 @@ pub struct ParseState { /// `flushed_ops`, so it can't be taken back by `ops.truncate`) — /// and emits a balancing Pop before the normal escape pops. shadow: ScopeStack, + /// Active while `handle_fail` recurses into `parse_line_inner*` to + /// replay a buffered past line under a new alternative. Overrides + /// the "current line" / "pending_lines slot" bookkeeping that + /// branches created during the re-parse record, so they anchor to + /// the replay line `L+i` rather than the outer `parse_line`'s + /// current line. Without it, a later fail on the outer line + /// misclassifies the replay-born branch as same-line and applies + /// its replay-line-relative `match_start` to a shorter outer line + /// (the byte-20-out-of-13 panic on `syntax_test_java.java:10263` + /// inside `@MultiLineAnnotation(...)`). + replay_ctx: Option, +} + +/// Bookkeeping override used while `handle_fail` is re-parsing a +/// buffered past line. See the `replay_ctx` field on `ParseState`. +#[derive(Debug, Clone, Eq, PartialEq)] +struct ReplayCtx { + /// Virtual "current line" of the inner re-parse (`bp.line_number + i`). + line_number: usize, + /// Slot in `self.pending_lines` that a branch created during this + /// replay iteration should record as its snapshot length, so a + /// future cross-line fail replays from `L+i` onward. + pending_lines_snapshot_offset: usize, } /// A resolved escape pattern from an `embed` operation, stored on the escape stack. @@ -363,6 +386,7 @@ impl ParseState { warnings: Vec::new(), escape_stack: Vec::new(), shadow: ScopeStack::new(), + replay_ctx: None, } } @@ -959,6 +983,14 @@ impl ParseState { // keyword's own scopes so a same-line fail rewind can // re-emit them (they were truncated off `ops` along // with the alt[0]'s subsequent work). + // When `handle_fail` is mid-replay, `self.line_number` / + // `self.pending_lines` still reflect the *outer* current + // line — read through `replay_ctx` so a branch born + // during replay anchors to the virtual replay line `L+i`. + let (bp_line_number, bp_pending_lines_snapshot_len) = match &self.replay_ctx { + Some(ctx) => (ctx.line_number, ctx.pending_lines_snapshot_offset), + None => (self.line_number.saturating_sub(1), self.pending_lines.len()), + }; let bp = BranchPoint { name: name.clone(), next_alternative: 1, // 0 is about to be pushed @@ -968,13 +1000,13 @@ impl ParseState { match_start: *start, // position before this match's advance trigger_match_start: match_start, pat_scope: pat.scope.clone(), - line_number: self.line_number.saturating_sub(1), // current line (already incremented) + line_number: bp_line_number, ops_snapshot_len: ops.len(), stack_depth: self.stack.len(), non_consuming_push_at_snapshot: *non_consuming_push_at, first_line_snapshot: self.first_line, with_prototype: pat.with_prototype.clone(), - pending_lines_snapshot_len: self.pending_lines.len(), + pending_lines_snapshot_len: bp_pending_lines_snapshot_len, escape_stack_snapshot: self.escape_stack.clone(), pop_count, prefix_ops: ops.clone(), @@ -1102,7 +1134,15 @@ impl ParseState { None => return Ok(false), // No such branch point, fail is no-op }; - let cur_line = self.line_number.saturating_sub(1); + // During a replay recursion, `cur_line` is the virtual replay + // line — without this override a same-line fail fired inside + // the re-parse would be misclassified as cross-line, and a + // fail on the outer line for a branch created during replay + // would be misclassified as same-line. + let cur_line = match &self.replay_ctx { + Some(ctx) => ctx.line_number, + None => self.line_number.saturating_sub(1), + }; let bp = &self.branch_points[bp_index]; // Check validity: not >128 lines old @@ -1148,6 +1188,7 @@ impl ParseState { // stack with `meta.type.js, meta.group.js` — 274 cascading // assertion failures in `syntax_test_typescript.ts`. let is_cross_line = bp.line_number < cur_line; + let bp_line_number = bp.line_number; let stack_snapshot = bp.stack_snapshot.clone(); let proto_starts_snapshot = bp.proto_starts_snapshot.clone(); let escape_stack_snapshot = bp.escape_stack_snapshot.clone(); @@ -1185,8 +1226,13 @@ impl ParseState { let mut replayed_ops: Vec> = Vec::with_capacity(truncated_lines.len()); for (i, replay_line) in truncated_lines.iter().enumerate() { - let line_ops = if i == 0 { - let mut first_line_ops = prefix_ops.clone(); + // Tag branches created during this iteration with + // the replay line's identity, not the outer line's. + let prev_replay_ctx = self.replay_ctx.replace(ReplayCtx { + line_number: bp_line_number + i, + pending_lines_snapshot_offset: pending_lines_snapshot_len + i, + }); + let inner_result = if i == 0 { let resume_at = if let Some((j, _)) = replay_line[match_start_pos..].char_indices().nth(1) { @@ -1194,12 +1240,18 @@ impl ParseState { } else { replay_line.len() }; - let tail_ops = - self.parse_line_inner_from(replay_line, syntax_set, resume_at)?; + self.parse_line_inner_from(replay_line, syntax_set, resume_at) + } else { + self.parse_line_inner(replay_line, syntax_set) + }; + self.replay_ctx = prev_replay_ctx; + let tail_ops = inner_result?; + let line_ops = if i == 0 { + let mut first_line_ops = prefix_ops.clone(); first_line_ops.extend(tail_ops); first_line_ops } else { - self.parse_line_inner(replay_line, syntax_set)? + tail_ops }; replayed_ops.push(line_ops); } @@ -1230,6 +1282,7 @@ impl ParseState { let is_cross_line = bp.line_number < cur_line; // Extract everything we need from bp before mutating self. + let bp_line_number = bp.line_number; let next_alt_index = bp.next_alternative; let next_alt = bp.alternatives[next_alt_index].clone(); let match_start_pos = bp.match_start; @@ -1311,6 +1364,19 @@ impl ParseState { let mut replayed_ops: Vec> = Vec::with_capacity(truncated_lines.len()); for (i, replay_line) in truncated_lines.iter().enumerate() { + // Tag branches created during this iteration with the + // replay line's identity, not the outer line's. + let prev_replay_ctx = self.replay_ctx.replace(ReplayCtx { + line_number: bp_line_number + i, + pending_lines_snapshot_offset: pending_lines_snapshot_len + i, + }); + let inner_result = if i == 0 { + self.parse_line_inner_from(replay_line, syntax_set, match_start_pos) + } else { + self.parse_line_inner(replay_line, syntax_set) + }; + self.replay_ctx = prev_replay_ctx; + let tail_ops = inner_result?; let line_ops = if i == 0 { // First buffered line: compose prefix + branch ops + resume. let mut first_line_ops = prefix_ops.clone(); @@ -1343,13 +1409,10 @@ impl ParseState { for scope in context.meta_content_scope.iter() { first_line_ops.push((match_start_pos, ScopeStackOp::Push(*scope))); } - // Resume parsing from the branch match's end position. - let tail_ops = - self.parse_line_inner_from(replay_line, syntax_set, match_start_pos)?; first_line_ops.extend(tail_ops); first_line_ops } else { - self.parse_line_inner(replay_line, syntax_set)? + tail_ops }; replayed_ops.push(line_ops); } @@ -6587,4 +6650,104 @@ contexts: } } } + + #[test] + fn replay_born_branch_routes_as_cross_line_on_later_fail() { + // A branch created while `handle_fail` is re-parsing a past buffered + // line must record the *replay line's* number, not the outer + // `parse_line`'s current line. Otherwise `handle_fail`'s later + // `is_cross_line = bp.line_number < cur_line` sees equal values on + // the second fail, routes into the same-line path, and applies + // `bp.match_start` (a byte offset into the long replay line) to a + // shorter outer line. That shipped as the `byte index N out of + // bounds` panic on `syntax_test_java.java:10263` (` foo = BAR,\n`) + // and on `syntax_test_markdown.md` under multi-line math blocks. + let syntax_str = r#" +name: ReplayBornBranch +scope: source.rbb +contexts: + main: + - match: 'A' + branch_point: bp1 + branch: [a1, a2] + a1: + - match: '(?=FAIL1)' + fail: bp1 + - match: '.' + a2: + - match: 'B' + branch_point: bp2 + branch: [b1, b2] + - match: '.' + b1: + - match: '(?=FAIL2)' + fail: bp2 + - match: '.' + b2: + - match: '.*' + scope: b2.fallback + pop: true +"#; + let syntax = SyntaxDefinition::load_from_str(syntax_str, true, None).unwrap(); + let ss = link(syntax); + let mut state = ParseState::new(&ss.syntaxes()[0]); + + // Long line 1 so `B` sits past the short outer line's length; bp2's + // replay-relative `match_start` would OOB a same-line rewind there. + let line1 = "A pad pad pad pad pad pad pad pad pad pad B tail\n"; + assert!(line1.find('B').unwrap() > "FAIL2\n".len()); + + let out1 = state.parse_line(line1, &ss).expect("line 1 parses"); + assert!(out1.replayed.is_empty()); + + // First cross-line fail: swap bp1 → a2. During a2's replay of line 1, + // `B` fires bp2 and records (with the fix) `line_number = 0` and + // `pending_lines_snapshot_len = 0` — anchored to line 1, not line 2. + let out2 = state.parse_line("FAIL1\n", &ss).expect("line 2 parses"); + assert_eq!(out2.replayed.len(), 1, "bp1 replay covers line 1"); + + // Second cross-line fail: bp2 must be classified cross-line on this + // outer line. With the fix it is (line 0 < line 2), so the handler + // takes the replay path and re-parses past buffered lines under b2. + // Without the fix bp2 appears same-line (line 2 == line 2) and the + // handler applies `match_start` = offset-of-B-in-line1 to the + // 6-byte outer line, corrupting ops / panicking downstream. + let outer = "FAIL2\n"; + let out3 = state.parse_line(outer, &ss).expect("line 3 parses"); + + // Cross-line classification fired a second replay covering the + // two buffered lines (line 1 + line 2). + assert_eq!( + out3.replayed.len(), + 2, + "expected replay from bp2's cross-line fail to cover both buffered lines, got {}: {:?}", + out3.replayed.len(), + out3.replayed, + ); + + // Panic guard: every op offset in both `ops` and `replayed` must + // fit within its paired line's byte length. + for (pos, op) in &out3.ops { + assert!( + *pos <= outer.len(), + "outer op past EOL: pos={} len={} op={:?}", + pos, + outer.len(), + op, + ); + } + let replay_lines = [line1, "FAIL1\n"]; + for (i, line_ops) in out3.replayed.iter().enumerate() { + for (pos, op) in line_ops { + assert!( + *pos <= replay_lines[i].len(), + "replayed[{}] op past EOL: pos={} len={} op={:?}", + i, + pos, + replay_lines[i].len(), + op, + ); + } + } + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index 611c611e..4139e8ab 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -6,8 +6,8 @@ FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 -FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 230 -FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 1 +FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 12 +FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 897 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index 611c611e..4139e8ab 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -6,8 +6,8 @@ FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 -FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 230 -FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 1 +FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 12 +FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 897 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 From 715a68e03de53dbad344e7a19a1503361e4af915 Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Sat, 25 Apr 2026 09:24:53 +0100 Subject: [PATCH 11/52] Inherit outer prefix in replay-born branch_points MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A `branch_point` born inside `handle_fail`'s cross-line replay recorded only the inner re-parse's local `res` Vec as its `prefix_ops`. When that nested branch later failed cross-line, its own replay reconstructed the line from an empty prefix and the captures emitted before the *outer* branch trigger vanished. Shipped as `[foo]: /url` losing its `meta.link.reference.def.markdown` and capture scopes whenever the outer `link-def-title-continuation` branch's `immediately-pop2` alt-1 spawned a nested `link-def-attr-continuation` whose own fail then replayed line 3 without the original LRD opener captures. Compose the first-line prefix (outer `prefix_ops` + new-alt meta/pat/capture/meta_content) up front in both cross-line replay paths, surface it via `ParseState::replay_prefix_ops`, and prepend it to inner branch creations' `prefix_ops`. Baselines: Markdown 897 → 565, TypeScript 12 → 0 (file disappears — `syntax_test_typescript.ts` exercised the same nested-replay shape). Refs: #631 --- src/parsing/parser.rs | 220 ++++++++++++++++++---- testdata/known_syntest_failures.txt | 3 +- testdata/known_syntest_failures_fancy.txt | 3 +- 3 files changed, 190 insertions(+), 36 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index 04da8e1f..0495cfe6 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -131,6 +131,18 @@ pub struct ParseState { /// (the byte-20-out-of-13 panic on `syntax_test_java.java:10263` /// inside `@MultiLineAnnotation(...)`). replay_ctx: Option, + /// Ops the outer cross-line replay has already composed for the + /// first replayed line — outer prefix_ops + new-alt meta/pat/capture + /// emission. A branch_point created during the inner re-parse + /// records `replay_prefix_ops + ops` as its own `prefix_ops`, so + /// when it later fails and reconstructs its line, the outer + /// captures (e.g. `[foo]:` LRD opener) survive instead of being + /// rebuilt from an empty Vec — the cause of `meta.link.reference` + /// scope loss in `syntax_test_markdown.md`'s `[foo]: /url` cases + /// where `link-def-title-continuation`'s fail spawns a nested + /// `link-def-attr-continuation` whose own fail then replayed line 3 + /// without the original captures. + replay_prefix_ops: Option>, } /// Bookkeeping override used while `handle_fail` is re-parsing a @@ -387,6 +399,7 @@ impl ParseState { escape_stack: Vec::new(), shadow: ScopeStack::new(), replay_ctx: None, + replay_prefix_ops: None, } } @@ -991,6 +1004,25 @@ impl ParseState { Some(ctx) => (ctx.line_number, ctx.pending_lines_snapshot_offset), None => (self.line_number.saturating_sub(1), self.pending_lines.len()), }; + // When this branch is born inside an outer cross-line + // replay's `parse_line_inner_from`, the local `ops` Vec + // is the inner re-parse's `res` — it does *not* include + // the outer prefix the outer replay is about to splice + // in front. Without prepending that outer prefix, a + // later fail of *this* branch reconstructs its line + // from an empty prefix, dropping the outer captures + // entirely (the `[foo]:` LRD opener vanished from + // `syntax_test_markdown.md`'s `[foo]: /url` cases when + // a `link-def-attr-continuation` born inside the + // `link-def-title-continuation` replay later failed). + let prefix_ops = match &self.replay_prefix_ops { + Some(outer) => { + let mut combined = outer.clone(); + combined.extend(ops.iter().cloned()); + combined + } + None => ops.clone(), + }; let bp = BranchPoint { name: name.clone(), next_alternative: 1, // 0 is about to be pushed @@ -1009,7 +1041,7 @@ impl ParseState { pending_lines_snapshot_len: bp_pending_lines_snapshot_len, escape_stack_snapshot: self.escape_stack.clone(), pop_count, - prefix_ops: ops.clone(), + prefix_ops, capture_ops: pat .captures .as_ref() @@ -1232,6 +1264,15 @@ impl ParseState { line_number: bp_line_number + i, pending_lines_snapshot_offset: pending_lines_snapshot_len + i, }); + // No new-alt construction here (all alternatives + // exhausted), so the first-line prefix is just + // `prefix_ops`. Surface it to inner branch creations + // so their `prefix_ops` keeps the outer captures. + let prev_replay_prefix = if i == 0 { + self.replay_prefix_ops.replace(prefix_ops.clone()) + } else { + self.replay_prefix_ops.take() + }; let inner_result = if i == 0 { let resume_at = if let Some((j, _)) = replay_line[match_start_pos..].char_indices().nth(1) @@ -1245,6 +1286,7 @@ impl ParseState { self.parse_line_inner(replay_line, syntax_set) }; self.replay_ctx = prev_replay_ctx; + self.replay_prefix_ops = prev_replay_prefix; let tail_ops = inner_result?; let line_ops = if i == 0 { let mut first_line_ops = prefix_ops.clone(); @@ -1361,6 +1403,40 @@ impl ParseState { let truncated_lines: Vec = self.pending_lines[pending_lines_snapshot_len..].to_vec(); + // Compose the first replayed line's prefix (outer prefix_ops + + // new-alt meta/pat/capture/meta_content emission) up front so a + // branch_point born inside the inner re-parse can inherit it + // via `self.replay_prefix_ops`. Built once per fail; cloned + // and extended with `tail_ops` to form the final line_ops. + let mut first_line_prefix = prefix_ops.clone(); + // Re-emit the trigger's pat.scope and the new alternative's + // meta scope ops in the same order the non-fail push path + // uses: clear_scopes and meta_scope at `trigger_match_start` + // (so the matched text sees them), then pat.scope at the + // same position, popped at `match_start_pos`. + // meta_content_scope only applies after the matched text, so + // it lands at `match_start_pos`. + if let Some(clear_amount) = context.clear_scopes { + first_line_prefix.push((trigger_match_start, ScopeStackOp::Clear(clear_amount))); + } + for scope in context.meta_scope.iter() { + first_line_prefix.push((trigger_match_start, ScopeStackOp::Push(*scope))); + } + for scope in &trigger_pat_scope { + first_line_prefix.push((trigger_match_start, ScopeStackOp::Push(*scope))); + } + // See matching comment in the same-line branch below — re-emit + // the trigger match's captures inside the pat_scope brackets + // so they survive the branch swap. + first_line_prefix.extend(trigger_capture_ops.iter().cloned()); + if !trigger_pat_scope.is_empty() { + first_line_prefix + .push((match_start_pos, ScopeStackOp::Pop(trigger_pat_scope.len()))); + } + for scope in context.meta_content_scope.iter() { + first_line_prefix.push((match_start_pos, ScopeStackOp::Push(*scope))); + } + let mut replayed_ops: Vec> = Vec::with_capacity(truncated_lines.len()); for (i, replay_line) in truncated_lines.iter().enumerate() { @@ -1370,45 +1446,25 @@ impl ParseState { line_number: bp_line_number + i, pending_lines_snapshot_offset: pending_lines_snapshot_len + i, }); + // Expose the first-line prefix so a branch_point born + // during this line's re-parse anchors its `prefix_ops` + // to the full line state — outer captures included. + // Subsequent replayed lines start fresh. + let prev_replay_prefix = if i == 0 { + self.replay_prefix_ops.replace(first_line_prefix.clone()) + } else { + self.replay_prefix_ops.take() + }; let inner_result = if i == 0 { self.parse_line_inner_from(replay_line, syntax_set, match_start_pos) } else { self.parse_line_inner(replay_line, syntax_set) }; self.replay_ctx = prev_replay_ctx; + self.replay_prefix_ops = prev_replay_prefix; let tail_ops = inner_result?; let line_ops = if i == 0 { - // First buffered line: compose prefix + branch ops + resume. - let mut first_line_ops = prefix_ops.clone(); - // Re-emit the trigger's pat.scope and the new - // alternative's meta scope ops in the same order - // the non-fail push path uses: clear_scopes and - // meta_scope at `trigger_match_start` (so the - // matched text sees them), then pat.scope at the - // same position, popped at `match_start_pos`. - // meta_content_scope only applies after the - // matched text, so it lands at `match_start_pos`. - if let Some(clear_amount) = context.clear_scopes { - first_line_ops - .push((trigger_match_start, ScopeStackOp::Clear(clear_amount))); - } - for scope in context.meta_scope.iter() { - first_line_ops.push((trigger_match_start, ScopeStackOp::Push(*scope))); - } - for scope in &trigger_pat_scope { - first_line_ops.push((trigger_match_start, ScopeStackOp::Push(*scope))); - } - // See matching comment in the same-line branch below — - // re-emit the trigger match's captures inside the - // pat_scope brackets so they survive the branch swap. - first_line_ops.extend(trigger_capture_ops.iter().cloned()); - if !trigger_pat_scope.is_empty() { - first_line_ops - .push((match_start_pos, ScopeStackOp::Pop(trigger_pat_scope.len()))); - } - for scope in context.meta_content_scope.iter() { - first_line_ops.push((match_start_pos, ScopeStackOp::Push(*scope))); - } + let mut first_line_ops = first_line_prefix.clone(); first_line_ops.extend(tail_ops); first_line_ops } else { @@ -6750,4 +6806,104 @@ contexts: } } } + + #[test] + fn replay_born_branch_inherits_outer_prefix_ops() { + // Branch born inside another branch's cross-line replay must + // record the outer replay's first-line prefix as part of its + // own `prefix_ops`. Otherwise its later cross-line fail + // reconstructs the replayed line from an empty prefix and the + // captures emitted before the *outer* branch trigger vanish. + // Shipped as `[foo]: /url` losing its + // `meta.link.reference.def.markdown` / `entity.name.reference` + // scopes in `syntax_test_markdown.md`: the line creates an + // outer `link-def-title-continuation` branch whose alt-1 + // (`immediately-pop2`) replay spawns a nested + // `link-def-attr-continuation` branch — when *that* branch + // fails on the next line its replay drops the original LRD + // opener captures. + let syntax_str = r#" +name: ReplayPrefix +scope: source.rp +contexts: + main: + - match: '(K)(EY)' + captures: + 1: keyword.k.rp + 2: variable.k.rp + push: outer + outer: + - match: '$' + branch_point: bp1 + branch: [a1, a2] + a1: + - meta_include_prototype: false + - match: '(?=FAIL1)' + fail: bp1 + - match: '.' + a2: + - meta_include_prototype: false + - match: '$' + branch_point: bp2 + branch: [b1, b2] + - match: '.' + b1: + - meta_include_prototype: false + - match: '(?=FAIL2)' + fail: bp2 + - match: '.' + b2: + - meta_include_prototype: false + - match: '\n' + scope: support.fallback.rp + pop: 2 +"#; + let syntax = SyntaxDefinition::load_from_str(syntax_str, true, None).unwrap(); + let ss = link(syntax); + let mut state = ParseState::new(&ss.syntaxes()[0]); + + // line 1 — captures `K` and `EY`, pushes `outer`, then `$` fires bp1. + let line1 = "KEY\n"; + let _ = state.parse_line(line1, &ss).expect("line 1 parses"); + + // line 2 — `(?=FAIL1)` in a1 trips bp1's cross-line fail. The + // alt-1 replay of line 1 spawns bp2 in a2 at end-of-line. + let line2 = "FAIL1\n"; + let _ = state.parse_line(line2, &ss).expect("line 2 parses"); + + // line 3 — `(?=FAIL2)` in b1 trips bp2's cross-line fail. With + // the fix bp2's `prefix_ops` carries the K / EY captures from + // bp1's replay, so the second cross-line replay re-emits them. + // Without the fix bp2's `prefix_ops` is empty and the replayed + // line 1 ops collapse to just `support.fallback.rp` push/pop. + let line3 = "FAIL2\n"; + let out3 = state.parse_line(line3, &ss).expect("line 3 parses"); + + // bp2's cross-line replay covered both buffered lines (line 1 + // + line 2). Line 1 is the one that must keep its captures. + assert_eq!( + out3.replayed.len(), + 2, + "bp2 cross-line replay should cover line1 + line2, got {:?}", + out3.replayed, + ); + let line1_ops = &out3.replayed[0]; + + let pushes_keyword = line1_ops.iter().any(|(_, op)| { + matches!(op, ScopeStackOp::Push(s) if *s == Scope::new("keyword.k.rp").unwrap()) + }); + let pushes_variable = line1_ops.iter().any(|(_, op)| { + matches!(op, ScopeStackOp::Push(s) if *s == Scope::new("variable.k.rp").unwrap()) + }); + assert!( + pushes_keyword, + "line 1 replayed ops should still push keyword.k.rp; got {:?}", + line1_ops, + ); + assert!( + pushes_variable, + "line 1 replayed ops should still push variable.k.rp; got {:?}", + line1_ops, + ); + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index 4139e8ab..37ea6701 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -6,8 +6,7 @@ FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 -FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 12 -FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 897 +FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 565 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index 4139e8ab..37ea6701 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -6,8 +6,7 @@ FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 -FAILED testdata/Packages/JavaScript/tests/syntax_test_typescript.ts: 12 -FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 897 +FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 565 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 From 7706736796f7cdb34f2a4e99a2ed9d8d5155b33c Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Sat, 25 Apr 2026 23:37:53 +0100 Subject: [PATCH 12/52] Refresh post-replay shadow and stack_before snapshots MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `parse_line` captured the buffered shadow snapshot BEFORE the line ran, and the syntest consumer captured `stack_before` similarly. A replay applied during that line's parse may have corrected ops for prior buffered lines, leaving the captured snapshot reflecting the uncorrected baseline. A LATER replay covering the same line then resets to that stale snapshot, re-applies the corrected ops on top, and resurrects any meta_scope the prior replay had unwound. Manifested as `meta.link.reference.def.markdown` leaking past back-to-back Markdown link reference definitions and polluting all subsequent paragraphs, code blocks, blockquotes, autolinks, footnotes, etc. for the rest of the file (~408 chars / 88 assertions in `syntax_test_markdown.md`). After applying replays in `parse_line`, overwrite each buffered `pending_line_start_shadows[start_idx + i + 1]` with the post-i shadow, and use the post-replay shadow as the snapshot for the current line being pushed. Mirror the same correction in `syntest`'s consumer loop on `parsed_line_buffer[..].stack_before`. Baselines: - Markdown 565 → 158 (the LRD-leak family) - Java 1 (panic) → 18953 (real failures unmasked — the `NoClearedScopesToRestore` panic that the same drift was triggering is gone) Refs: #631 --- examples/syntest.rs | 26 +++++- src/parsing/parser.rs | 108 ++++++++++++++++++++-- testdata/known_syntest_failures.txt | 4 +- testdata/known_syntest_failures_fancy.txt | 4 +- 4 files changed, 129 insertions(+), 13 deletions(-) diff --git a/examples/syntest.rs b/examples/syntest.rs index 8a4385af..e0166647 100644 --- a/examples/syntest.rs +++ b/examples/syntest.rs @@ -458,7 +458,6 @@ fn test_file( current_line_number, stack, state ); } - let stack_before = stack.clone(); let output = match state.parse_line(&line, ss) { Ok(output) => output, Err(e) => { @@ -507,6 +506,19 @@ fn test_file( // Reset stack to the state before the first replayed line stack = parsed_line_buffer[start_idx].stack_before.clone(); + // Collect corrected baselines to apply post-loop, since the + // mutable record borrow inside the loop forbids touching + // sibling buffer entries. After applying replayed[i], + // `stack` is the corrected end-of-line for the buffered + // record at start_idx + i, i.e. the corrected + // start-of-line baseline for record at start_idx + i + 1. + // Overwriting that baseline prevents a future replay from + // resurrecting any meta_scope the prior replay had unwound + // (observed as meta.link.reference.def.markdown leak past + // back-to-back Markdown link reference definitions). + let buf_len = parsed_line_buffer.len(); + let mut corrected_baselines: Vec<(usize, ScopeStack)> = Vec::new(); + for (i, replayed_ops) in replayed.iter().enumerate() { let record = &mut parsed_line_buffer[start_idx + i]; let has_non_assertion = record.non_assertion_data.is_some(); @@ -527,6 +539,10 @@ fn test_file( col += len; } } + let next_idx = start_idx + i + 1; + if next_idx < buf_len { + corrected_baselines.push((next_idx, stack.clone())); + } if let Some(ref mut data) = record.non_assertion_data { if !data.assertions.is_empty() { @@ -590,6 +606,9 @@ fn test_file( } } } + for (idx, corrected) in corrected_baselines { + parsed_line_buffer[idx].stack_before = corrected; + } } if out_opts.debug && !line_only_has_assertion { @@ -599,6 +618,11 @@ fn test_file( debug_print_ops(&line, &ops); } } + // Snapshot the stack now (post-replays, pre-current-ops) — this + // becomes the buffered `stack_before` for the current line, so a + // future replay covering it resets to the corrected baseline + // rather than the stale pre-parse value. + let stack_before = stack.clone(); // Build the just-parsed line's scopes. For non-assertion (target) // lines they go into `scopes_on_line_being_tested`; for the FIRST // assertion line that follows a target they go into a fresh vec diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index 0495cfe6..c0ae29be 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -446,12 +446,6 @@ impl ParseState { }); self.line_number += 1; - // Snapshot the shadow before parsing this line — if the parse ends - // with live branch_points we'll buffer this value alongside the - // line string so a future cross-line fail can restore the shadow - // to "state at start of first replayed line" (mirroring the - // consumer's reset behaviour in `syntest`). - let shadow_at_start = self.shadow.clone(); let pending_lines_before = self.pending_lines.len(); let ops = self.parse_line_inner(line, syntax_set)?; @@ -466,6 +460,16 @@ impl ParseState { // `parsed_line_buffer[start_idx].stack_before` when `replayed` is // non-empty, then applies replayed then applies current-line ops. // Mirror that here so `shadow` matches the consumer downstream. + // + // While re-applying replays, also overwrite each buffered line's + // pending_line_start_shadows entry with the corrected baseline. + // Without this, a later replay covering this same line would reset + // shadow to a stale snapshot captured before the prior replay's + // correction landed, causing scope leaks (e.g. + // meta.link.reference.def.markdown persisting past back-to-back + // Markdown link reference definitions, since each LRD's correction + // arrives in the *next* line's parse_line and the snapshot for + // that next line was captured from the buggy uncorrected stack). if !replayed.is_empty() { let start_idx = pending_lines_before .checked_sub(replayed.len()) @@ -473,12 +477,26 @@ impl ParseState { if let Some(snap) = self.pending_line_start_shadows.get(start_idx) { self.shadow = snap.clone(); } - for line_ops in &replayed { + for (i, line_ops) in replayed.iter().enumerate() { for (_, op) in line_ops { let _ = self.shadow.apply(op); } + // After applying replayed[i], shadow == start of buffered + // line (start_idx + i + 1). Overwrite that snapshot so the + // next replay covering it starts from the corrected + // baseline rather than the stale one captured pre-replay. + let next_idx = start_idx + i + 1; + if next_idx < self.pending_line_start_shadows.len() { + self.pending_line_start_shadows[next_idx] = self.shadow.clone(); + } } } + + // Snapshot the shadow now (post-replays, pre-current-ops) — this + // becomes the baseline for the next line if the current line ends + // with live branch_points and gets buffered for future replay. + let shadow_at_start_corrected = self.shadow.clone(); + for (_, op) in &ops { let _ = self.shadow.apply(op); } @@ -486,7 +504,8 @@ impl ParseState { // Keep the line string for potential future cross-line replay. if !self.branch_points.is_empty() { self.pending_lines.push(line.to_string()); - self.pending_line_start_shadows.push(shadow_at_start); + self.pending_line_start_shadows + .push(shadow_at_start_corrected); } else { // No active branch points: any buffered strings are stale. self.pending_lines.clear(); @@ -6906,4 +6925,77 @@ contexts: line1_ops, ); } + + /// Two back-to-back link reference definitions followed by a + /// paragraph: each LRD's chain is closed by the *next* line's parse + /// emitting a `Pop` against the LRD's `meta_scope` via + /// `flushed_ops`. Without snapshot-drift correction, the + /// pre-correction `pending_line_start_shadows` (and the consumer's + /// `parsed_line_buffer[i].stack_before`) used by the second + /// replay's stack-reset still reflected the first LRD's leftover + /// `meta.link.reference.def.markdown` push, so the corrected line + /// 4 ops re-applied that scope onto a stale baseline — leaking it + /// into the paragraph and on through the rest of the file. + /// Sized 408 chars / 88 assertions in + /// `syntax_test_markdown.md`. + #[test] + fn back_to_back_lrds_clear_meta_scope_via_corrected_baseline() { + use crate::parsing::SyntaxSet; + let ss = SyntaxSet::load_from_folder("testdata/Packages").unwrap(); + let syntax = ss + .find_syntax_by_path("Packages/Markdown/Markdown.sublime-syntax") + .unwrap(); + let mut state = ParseState::new(syntax); + + // Mirror the syntest consumer's stack-tracking with the + // snapshot-drift correction the bug requires. + struct Record { + stack_before: ScopeStack, + } + let mut buffer: Vec = Vec::new(); + let mut stack = ScopeStack::new(); + + for line in ["[foo]: first\n", "[foo]: second\n", "bar\n"] { + let out = state.parse_line(line, &ss).expect("parse"); + if !out.replayed.is_empty() { + let buf_len = buffer.len(); + let start_idx = buf_len - out.replayed.len(); + stack = buffer[start_idx].stack_before.clone(); + let mut corrected: Vec<(usize, ScopeStack)> = Vec::new(); + for (i, replayed_ops) in out.replayed.iter().enumerate() { + for (_, op) in replayed_ops { + let _ = stack.apply(op); + } + let next_idx = start_idx + i + 1; + if next_idx < buf_len { + corrected.push((next_idx, stack.clone())); + } + } + for (idx, c) in corrected { + buffer[idx].stack_before = c; + } + } + let stack_before = stack.clone(); + for (_, op) in &out.ops { + let _ = stack.apply(op); + } + buffer.push(Record { stack_before }); + } + + let lrd = Scope::new("meta.link.reference.def.markdown").unwrap(); + let leaked = stack.as_slice().contains(&lrd); + assert!( + !leaked, + "meta.link.reference.def.markdown leaked past back-to-back \ + LRDs into 'bar' paragraph; consumer stack at end: {:?}", + stack, + ); + let shadow_leaked = state.shadow.as_slice().contains(&lrd); + assert!( + !shadow_leaked, + "syntect shadow disagrees with corrected consumer stack; \ + shadow at end: {:?}", + state.shadow, + ); + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index 37ea6701..ad5f6af4 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -4,9 +4,9 @@ FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 18953 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 -FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 565 +FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index 37ea6701..ad5f6af4 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -4,9 +4,9 @@ FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 18953 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 -FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 565 +FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 From d31dbe3ded27024b2e52c9138fad734567e7c3f9 Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Sun, 26 Apr 2026 09:51:28 +0100 Subject: [PATCH 13/52] Subtract bp.pop_count in branch_point retain predicate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A `pop: N + branch_point` snapshots `stack_depth` pre-pop; the synthetic Set's post-Set retain (`bp.stack_depth <= final_len`) and `handle_fail`'s validity check (`stack.len() < bp.stack_depth`) both ignored that `pop_count`, dropping the freshly-created bp at creation. Same-line re-emit also missed the popped contexts' meta_scope clearance Pop — route it through `push_meta_ops` like the original push. Symptom: `meta.annotation.identifier.java meta.path.java` leaking past nested-annotation extends paths in `syntax_test_java.java`. Drops Java baseline 18953 -> 9956. --- src/parsing/parser.rs | 185 ++++++++++++++++------ testdata/known_syntest_failures.txt | 2 +- testdata/known_syntest_failures_fancy.txt | 2 +- 3 files changed, 142 insertions(+), 47 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index c0ae29be..8392804a 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -1206,8 +1206,15 @@ impl ParseState { return Ok(false); } - // Check validity: stack depth still >= branch's stack_depth - if self.stack.len() < bp.stack_depth { + // Check validity: the alt frame is still on the stack. Mirrors the + // bp lookup predicate above (`stack_len > bp.stack_depth.saturating_sub(bp.pop_count)`) + // so a `pop: N + branch_point` whose snapshot captures the + // pre-pop depth doesn't false-positive here. Without subtracting + // `pop_count`, Java's `pop: 2 + branch_point: annotation-qualified-parameters` + // failed lookup with `self.stack.len() < bp.stack_depth` and the + // fail became a no-op, leaking `meta.annotation.identifier.java` + // into every nested-annotation extends path. + if self.stack.len() <= bp.stack_depth.saturating_sub(bp.pop_count) { self.branch_points.remove(bp_index); return Ok(false); } @@ -1363,7 +1370,10 @@ impl ParseState { let pop_count = self.branch_points[bp_index].pop_count; // Restore parser state to the snapshot. - self.stack = stack_snapshot; + // Keep `stack_snapshot` available — the same-line fix below needs + // it to compute popped-context meta_scope clearance via + // `push_meta_ops`. + self.stack = stack_snapshot.clone(); self.proto_starts = proto_starts_snapshot; self.escape_stack = escape_stack_snapshot; self.first_line = first_line_snapshot; @@ -1535,38 +1545,67 @@ impl ParseState { // because the original Push/Pop pair was truncated off // `ops` together with alt[0]'s subsequent work. // - // The new alternative's `clear_scopes` and `meta_scope` - // are emitted at `trigger_match_start` *before* the - // trigger's `pat.scope`, mirroring the non-fail push path - // in `push_meta_ops` (initial phase): meta_scope sits - // below the match scope on the stack so the matched text - // sees both. Placing them at `match_start_pos` would mean - // the trigger character (e.g. `(` of `for (var i = 0; …)`) - // never sees the alternative's `meta_scope`. The - // `meta_content_scope` legitimately stays at - // `match_start_pos` — mcs only applies after the matched - // text. - if let Some(clear_amount) = context.clear_scopes { - ops.push((trigger_match_start, ScopeStackOp::Clear(clear_amount))); - } - for scope in context.meta_scope.iter() { - ops.push((trigger_match_start, ScopeStackOp::Push(*scope))); - } - for scope in &trigger_pat_scope { - ops.push((trigger_match_start, ScopeStackOp::Push(*scope))); - } - // Captures emitted alongside the original pat.scope (e.g. - // `keyword.declaration.data.haskell` on the first capture of - // `(data)(?:\s+(family|instance))?`) were truncated off with - // alt[0]'s ops. Re-emit them inside the pat_scope brackets so - // the keyword scope survives the branch swap. - ops.extend(trigger_capture_ops.iter().cloned()); - if !trigger_pat_scope.is_empty() { - ops.push((match_start_pos, ScopeStackOp::Pop(trigger_pat_scope.len()))); - } - for scope in context.meta_content_scope.iter() { - ops.push((match_start_pos, ScopeStackOp::Push(*scope))); + // Use `push_meta_ops` with a synthetic Set/Push for the + // new alternative — same path the original branch creation + // takes — so both the new alternative's own meta scopes + // AND the popped contexts' meta_scope/mcs clearance Pop + // (for `pop: N + branch_point`, N > 0) get re-emitted. + // A bespoke re-emit of just `context.meta_scope` / + // `context.meta_content_scope` was missing the + // popped-contexts Pop, leaving Java's + // `pop: 2 + branch_point: annotation-qualified-parameters` + // with `meta.annotation.identifier.java meta.path.java` + // (annotation-qualified-identifier's `meta_scope`) leaked + // on the stack after the branch_point's first alt failed + // and the second alt (`immediately-pop`) ran. + // + // `push_meta_ops` reads `self.stack` to compute the + // popped contexts' scope atoms, so swap in `stack_snapshot` + // (pre-pop state captured at branch creation) for the + // duration of the calls — `self.stack` currently holds the + // post-set state (alt N already pushed). + let synthetic_op_alt_n = if pop_count > 0 { + MatchOperation::Set { + ctx_refs: vec![next_alt.clone()], + pop_count, + } + } else { + MatchOperation::Push(vec![next_alt.clone()]) + }; + let level_ctx_id = stack_snapshot.last().map(|l| l.context); + let post_set_stack = std::mem::replace(&mut self.stack, stack_snapshot.clone()); + if let Some(level_ctx_id) = level_ctx_id { + let level_context = syntax_set.get_context(&level_ctx_id)?; + self.push_meta_ops( + true, + trigger_match_start, + level_context, + &synthetic_op_alt_n, + syntax_set, + ops, + )?; + for scope in &trigger_pat_scope { + ops.push((trigger_match_start, ScopeStackOp::Push(*scope))); + } + // Captures emitted alongside the original pat.scope (e.g. + // `keyword.declaration.data.haskell` on the first capture of + // `(data)(?:\s+(family|instance))?`) were truncated off with + // alt[0]'s ops. Re-emit them inside the pat_scope brackets so + // the keyword scope survives the branch swap. + ops.extend(trigger_capture_ops.iter().cloned()); + if !trigger_pat_scope.is_empty() { + ops.push((match_start_pos, ScopeStackOp::Pop(trigger_pat_scope.len()))); + } + self.push_meta_ops( + false, + match_start_pos, + level_context, + &synthetic_op_alt_n, + syntax_set, + ops, + )?; } + self.stack = post_set_stack; } // Clear search cache since we're rewinding. @@ -2049,10 +2088,10 @@ impl ParseState { for _ in 0..pop_count { self.stack.pop(); } + let stack_len = self.stack.len(); self.branch_points - .retain(|bp| bp.stack_depth <= self.stack.len()); - self.escape_stack - .retain(|e| e.stack_depth < self.stack.len()); + .retain(|bp| stack_len > bp.stack_depth.saturating_sub(bp.pop_count)); + self.escape_stack.retain(|e| e.stack_depth < stack_len); } (contexts, None, true) } @@ -2071,11 +2110,25 @@ impl ParseState { self.stack.pop(); } // Prune branch_points / escape_stack against the *final* stack - // length (after the common push loop below), so a branch_point - // captured at the pre-set depth survives a pop-1 + push-1 set - // — the depth the bp references is still valid after the push. + // length (after the common push loop below). + // + // The retain predicate must mirror `handle_fail`'s validity + // check (`stack.len() > bp.stack_depth - bp.pop_count`), + // which subtracts the bp's own `pop_count`. Without that + // subtraction, a `pop: N + branch_point` whose synthetic + // Set has `pop_count: N` removes its own freshly-created + // bp here — `bp.stack_depth` snapshots the *pre-pop* + // depth, so `bp.stack_depth > final_len` even though the + // alt-0 frame lives on at `final_len`. Symptom in Java: + // the `branch_point: annotation-qualified-parameters` + // declared on `annotation-qualified-identifier-name`'s + // `pop: 2 + branch_point` was dropped at creation, + // making its later `(?=\S)` `fail` a no-op and leaking + // `meta.annotation.identifier.java meta.path.java` past + // every nested-annotation extends path. let final_len = self.stack.len() + ctx_refs.len(); - self.branch_points.retain(|bp| bp.stack_depth <= final_len); + self.branch_points + .retain(|bp| final_len > bp.stack_depth.saturating_sub(bp.pop_count)); self.escape_stack.retain(|e| e.stack_depth < final_len); (ctx_refs, old_proto_ids, false) } @@ -2083,12 +2136,14 @@ impl ParseState { for _ in 0..n { self.stack.pop(); } - // Invalidate branch points whose stack depth is now above current stack + // Invalidate branch points whose alt frame is no longer on + // the stack. Use the same threshold as `handle_fail`'s + // validity check — see the comment in the Set arm above. + let stack_len = self.stack.len(); self.branch_points - .retain(|bp| bp.stack_depth <= self.stack.len()); + .retain(|bp| stack_len > bp.stack_depth.saturating_sub(bp.pop_count)); // Remove escape entries whose stack_depth >= current stack - self.escape_stack - .retain(|e| e.stack_depth < self.stack.len()); + self.escape_stack.retain(|e| e.stack_depth < stack_len); return Ok(true); } MatchOperation::None => return Ok(false), @@ -6998,4 +7053,44 @@ contexts: state.shadow, ); } + + #[cfg(feature = "default-onig")] + #[test] + fn pop_n_branch_point_keeps_bp_so_alt_fail_unwinds_meta_scope() { + // Real-syntax repro for the Java class-extends annotation leak: + // `class T extends a.@b.c Foo {}`. The branch_point on + // `annotation-qualified-identifier-name`'s `pop: 2 + branch_point: + // annotation-qualified-parameters` was being pruned by perform_op's + // post-Set retain (`bp.stack_depth <= final_len` ignored + // `bp.pop_count`), so the branch's first alt — which has + // `meta_content_scope: meta.annotation.identifier.java` — was + // never failed-out, leaking `meta.annotation.identifier.java` + // past every nested-annotation extends path in the Java suite. + use crate::parsing::SyntaxSet; + let ss = SyntaxSet::load_from_folder("testdata/Packages").unwrap(); + let syntax = ss + .find_syntax_by_path("Packages/Java/Java.sublime-syntax") + .unwrap(); + let mut state = ParseState::new(syntax); + let mut stack = ScopeStack::new(); + for line in ["class T extends a.@b.c Foo {}\n"] { + let out = state.parse_line(line, &ss).expect("parse"); + for (_, op) in &out.ops { + let _ = stack.apply(op); + } + } + let ann = Scope::new("meta.annotation.identifier.java").unwrap(); + assert!( + !stack.as_slice().contains(&ann), + "meta.annotation.identifier.java leaked past `@b.c` annotation \ + into the outer extends path; final stack: {:?}", + stack, + ); + assert!( + !state.shadow.as_slice().contains(&ann), + "syntect shadow still carries meta.annotation.identifier.java; \ + shadow: {:?}", + state.shadow, + ); + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index ad5f6af4..2dfc77a2 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -4,7 +4,7 @@ FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 18953 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9956 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index ad5f6af4..2dfc77a2 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -4,7 +4,7 @@ FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 18953 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9956 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 From d4a7e0543e66f4f522f9d11748b3b5a9703b4237 Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Sun, 26 Apr 2026 20:46:00 +0100 Subject: [PATCH 14/52] Route handle_fail cross-line re-emit through push_meta_ops MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirrors the #660 same-line fix into the cross-line branch — the bespoke re-emit of the new alternative's meta_scope/meta_content_scope was missing the popped contexts' Pop, leaking the popped meta_scope (annotation-qualified-identifier's meta_scope in Java) plus the surrounding declaration's meta_scope when an annotation crosses a line into a class/enum/interface declaration. --- src/parsing/parser.rs | 168 ++++++++++++++++++---- testdata/known_syntest_failures.txt | 2 +- testdata/known_syntest_failures_fancy.txt | 2 +- 3 files changed, 143 insertions(+), 29 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index 8392804a..991e4e62 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -1393,7 +1393,6 @@ impl ParseState { // Push the next alternative onto the stack. let with_prototype = self.branch_points[bp_index].with_prototype.clone(); let context_id = next_alt.id()?; - let context = syntax_set.get_context(&context_id)?; let captures = None; // no captures available at rewind time let proto_ids = match with_prototype { @@ -1437,34 +1436,68 @@ impl ParseState { // branch_point born inside the inner re-parse can inherit it // via `self.replay_prefix_ops`. Built once per fail; cloned // and extended with `tail_ops` to form the final line_ops. + // + // Use `push_meta_ops` with a synthetic Set/Push for the + // new alternative — same path the same-line fail above and + // the original branch creation take — so both the new + // alternative's own meta scopes AND the popped contexts' + // meta_scope/mcs clearance Pop (for `pop: N + branch_point`, + // N > 0) get re-emitted. A bespoke re-emit of just + // `context.meta_scope` / `context.meta_content_scope` is + // missing the popped-contexts Pop, leaving Java's + // `pop: 2 + branch_point: annotation-qualified-parameters` + // crossing a line boundary with both the popped context's + // meta_scope (`meta.annotation.identifier.java`) AND the + // outer declaration's meta_scope (`meta.enum.java` / + // `meta.class.java` / `meta.interface.java`) leaked on the + // stack — cascading across 8000+ lines past the multi-line + // annotation-modified declaration at lines 2260-2297 of + // `syntax_test_java.java`. + // + // `push_meta_ops` reads `self.stack` to compute the popped + // contexts' scope atoms, so swap in `stack_snapshot` (pre-pop + // state captured at branch creation) for the duration of the + // calls — `self.stack` currently holds the post-set state + // (alt N already pushed). let mut first_line_prefix = prefix_ops.clone(); - // Re-emit the trigger's pat.scope and the new alternative's - // meta scope ops in the same order the non-fail push path - // uses: clear_scopes and meta_scope at `trigger_match_start` - // (so the matched text sees them), then pat.scope at the - // same position, popped at `match_start_pos`. - // meta_content_scope only applies after the matched text, so - // it lands at `match_start_pos`. - if let Some(clear_amount) = context.clear_scopes { - first_line_prefix.push((trigger_match_start, ScopeStackOp::Clear(clear_amount))); - } - for scope in context.meta_scope.iter() { - first_line_prefix.push((trigger_match_start, ScopeStackOp::Push(*scope))); - } - for scope in &trigger_pat_scope { - first_line_prefix.push((trigger_match_start, ScopeStackOp::Push(*scope))); - } - // See matching comment in the same-line branch below — re-emit - // the trigger match's captures inside the pat_scope brackets - // so they survive the branch swap. - first_line_prefix.extend(trigger_capture_ops.iter().cloned()); - if !trigger_pat_scope.is_empty() { - first_line_prefix - .push((match_start_pos, ScopeStackOp::Pop(trigger_pat_scope.len()))); - } - for scope in context.meta_content_scope.iter() { - first_line_prefix.push((match_start_pos, ScopeStackOp::Push(*scope))); + let synthetic_op_alt_n = if pop_count > 0 { + MatchOperation::Set { + ctx_refs: vec![next_alt.clone()], + pop_count, + } + } else { + MatchOperation::Push(vec![next_alt.clone()]) + }; + let level_ctx_id = stack_snapshot.last().map(|l| l.context); + let post_set_stack = std::mem::replace(&mut self.stack, stack_snapshot.clone()); + if let Some(level_ctx_id) = level_ctx_id { + let level_context = syntax_set.get_context(&level_ctx_id)?; + self.push_meta_ops( + true, + trigger_match_start, + level_context, + &synthetic_op_alt_n, + syntax_set, + &mut first_line_prefix, + )?; + for scope in &trigger_pat_scope { + first_line_prefix.push((trigger_match_start, ScopeStackOp::Push(*scope))); + } + first_line_prefix.extend(trigger_capture_ops.iter().cloned()); + if !trigger_pat_scope.is_empty() { + first_line_prefix + .push((match_start_pos, ScopeStackOp::Pop(trigger_pat_scope.len()))); + } + self.push_meta_ops( + false, + match_start_pos, + level_context, + &synthetic_op_alt_n, + syntax_set, + &mut first_line_prefix, + )?; } + self.stack = post_set_stack; let mut replayed_ops: Vec> = Vec::with_capacity(truncated_lines.len()); @@ -7093,4 +7126,85 @@ contexts: state.shadow, ); } + + #[cfg(feature = "default-onig")] + #[test] + fn cross_line_pop_n_branch_point_alt_fail_unwinds_meta_scope() { + // Cross-line variant of the Java annotation leak: + // `@A.B\nclass E {}\n`. At end of line 1, the + // `annotation-qualified-parameters` branch_point is live waiting + // for `(`. Line 2 starts with `class`, so alt 1 fails and alt 2 + // (`immediately-pop`) runs via handle_fail's cross-line path. That + // path used a bespoke re-emit of just `context.meta_scope` / + // `meta_content_scope`, missing the popped contexts' Pop — leaving + // `meta.annotation.identifier.java` and the surrounding + // declaration's meta_scope (`meta.class.java` / + // `meta.enum.java` / `meta.interface.java`) on the stack. Routing + // through `push_meta_ops` with a synthetic Set/Push (mirroring the + // same-line fix) emits the popped contexts' Pop alongside the new + // alternative's meta_scope push. + // + // The consumer must apply `out.replayed` corrected ops the same + // way `examples/syntest.rs` does: rewind to the buffered line's + // pre-parse stack, replay the corrected ops in order, then apply + // the current line's ops. This mirrors the LRD test above. + use crate::parsing::SyntaxSet; + struct Record { + stack_before: ScopeStack, + } + let ss = SyntaxSet::load_from_folder("testdata/Packages").unwrap(); + let syntax = ss + .find_syntax_by_path("Packages/Java/Java.sublime-syntax") + .unwrap(); + let mut state = ParseState::new(syntax); + let mut stack = ScopeStack::new(); + let mut buffer: Vec = Vec::new(); + for line in ["@A.B\n", "class E {}\n"] { + let out = state.parse_line(line, &ss).expect("parse"); + if !out.replayed.is_empty() { + let buf_len = buffer.len(); + let start_idx = buf_len - out.replayed.len(); + stack = buffer[start_idx].stack_before.clone(); + let mut corrected: Vec<(usize, ScopeStack)> = Vec::new(); + for (i, replayed_ops) in out.replayed.iter().enumerate() { + for (_, op) in replayed_ops { + let _ = stack.apply(op); + } + let next_idx = start_idx + i + 1; + if next_idx < buf_len { + corrected.push((next_idx, stack.clone())); + } + } + for (idx, c) in corrected { + buffer[idx].stack_before = c; + } + } + let stack_before = stack.clone(); + for (_, op) in &out.ops { + let _ = stack.apply(op); + } + buffer.push(Record { stack_before }); + } + let ann = Scope::new("meta.annotation.identifier.java").unwrap(); + let cls = Scope::new("meta.class.java").unwrap(); + assert!( + !stack.as_slice().contains(&ann), + "meta.annotation.identifier.java leaked past `@A.B` annotation \ + into top-level scope after cross-line `class E {{}}`; final \ + stack: {:?}", + stack, + ); + assert!( + !stack.as_slice().contains(&cls), + "meta.class.java leaked past `class E {{}}` body close into \ + top-level scope; final stack: {:?}", + stack, + ); + assert!( + !state.shadow.as_slice().contains(&ann), + "syntect shadow still carries meta.annotation.identifier.java; \ + shadow: {:?}", + state.shadow, + ); + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index 2dfc77a2..38ca0604 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -4,7 +4,7 @@ FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9956 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9935 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index 2dfc77a2..38ca0604 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -4,7 +4,7 @@ FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9956 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9935 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 From 82703dc7d73a26e0a7c74a40ab6653bdf6a691ac Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Sun, 26 Apr 2026 21:43:42 +0100 Subject: [PATCH 15/52] Save flushed_ops before cross-line replay loop and prefer inner corrections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When an outer cross-line `fail`'s replay re-parses buffered lines, an inner cross-line `fail` firing during the loop writes its correction into `self.flushed_ops`. Previously, the outer's locally-computed `replayed_ops[i]` overwrote that correction via `merge_flushed`, freezing a stale interpretation for indices the inner had already corrected. Fixes the leak in `src/parsing/parser.rs::handle_fail` for both the alt-N and exhaustion cross-line paths. Repro: Java `@A.B\n(par=1)\nenum E {}\n` — the outer `declarations` fail's line-1 reparse froze the dotted annotation as `path` alt before the inner `annotation-qualified-identifier` fail's `name`-alt resolution landed. Drops Java syntest baseline 9935 → 9774; no regressions in other languages or in `Markdown` (still 158). --- src/parsing/parser.rs | 141 ++++++++++++++++++++++ testdata/known_syntest_failures.txt | 2 +- testdata/known_syntest_failures_fancy.txt | 2 +- 3 files changed, 143 insertions(+), 2 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index 991e4e62..a5b64181 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -1153,6 +1153,24 @@ impl ParseState { } } + fn prefer_inner_replay_corrections( + outer_snap: usize, + replayed_ops: &mut [Vec<(usize, ScopeStackOp)>], + inner_ops: &[Vec<(usize, ScopeStackOp)>], + inner_start: usize, + ) { + for (i, outer_local) in replayed_ops.iter_mut().enumerate() { + let global_i = outer_snap + i; + if global_i < inner_start { + continue; + } + let inner_idx = global_i - inner_start; + if let Some(corrected) = inner_ops.get(inner_idx) { + *outer_local = corrected.clone(); + } + } + } + /// Handle a `fail` operation by rewinding to the named branch point. /// Returns Ok(true) if backtracking happened (caller should continue from rewound position). /// Returns Ok(false) if the fail had no effect. @@ -1281,6 +1299,11 @@ impl ParseState { // buffered lines. let truncated_lines: Vec = self.pending_lines[pending_lines_snapshot_len..].to_vec(); + // Save prior flushed_ops state and clear it so any nested + // cross-line fails firing during the replay loop below + // write into a clean slot we can detect afterward. + let saved_flushed = std::mem::take(&mut self.flushed_ops); + let saved_flushed_start = self.flushed_ops_start.take(); let mut replayed_ops: Vec> = Vec::with_capacity(truncated_lines.len()); for (i, replay_line) in truncated_lines.iter().enumerate() { @@ -1323,6 +1346,22 @@ impl ParseState { }; replayed_ops.push(line_ops); } + // Capture inner corrections (if any), restore prior state, + // then prefer the inner corrections for overlapping indices. + let inner_corrections = std::mem::take(&mut self.flushed_ops); + let inner_corrections_start = self.flushed_ops_start.take(); + self.flushed_ops = saved_flushed; + self.flushed_ops_start = saved_flushed_start; + if let Some(start) = inner_corrections_start { + if !inner_corrections.is_empty() { + Self::prefer_inner_replay_corrections( + pending_lines_snapshot_len, + &mut replayed_ops, + &inner_corrections, + start, + ); + } + } self.merge_flushed(pending_lines_snapshot_len, replayed_ops); // Restart the current line from the beginning under the @@ -1499,6 +1538,12 @@ impl ParseState { } self.stack = post_set_stack; + // Save prior flushed_ops state and clear it so any nested + // cross-line fails firing during the replay loop below write + // into a clean slot we can detect afterward. + let saved_flushed = std::mem::take(&mut self.flushed_ops); + let saved_flushed_start = self.flushed_ops_start.take(); + let mut replayed_ops: Vec> = Vec::with_capacity(truncated_lines.len()); for (i, replay_line) in truncated_lines.iter().enumerate() { @@ -1534,6 +1579,31 @@ impl ParseState { }; replayed_ops.push(line_ops); } + // Capture inner corrections (if any), restore prior state, then + // prefer the inner corrections for overlapping indices. Without + // this, the outer's locally-computed `replayed_ops[i]` for + // indices an inner cross-line fail later corrected (during a + // later iteration of this same loop) would silently overwrite + // the inner's more accurate correction in `flushed_ops` — + // observed on Java's `@A.B\n(par=1)\nenum E {}` where the + // outer `declarations` cross-line replay's line-1 ops froze the + // dotted annotation as `path` alt before the inner + // `annotation-qualified-identifier` cross-line fail's `name`-alt + // resolution arrived (during line-2 reparse). + let inner_corrections = std::mem::take(&mut self.flushed_ops); + let inner_corrections_start = self.flushed_ops_start.take(); + self.flushed_ops = saved_flushed; + self.flushed_ops_start = saved_flushed_start; + if let Some(start) = inner_corrections_start { + if !inner_corrections.is_empty() { + Self::prefer_inner_replay_corrections( + pending_lines_snapshot_len, + &mut replayed_ops, + &inner_corrections, + start, + ); + } + } self.merge_flushed(pending_lines_snapshot_len, replayed_ops); // Restart the current line from the beginning. @@ -7207,4 +7277,75 @@ contexts: state.shadow, ); } + + #[cfg(feature = "default-onig")] + #[test] + fn outer_cross_line_replay_prefers_inner_correction() { + // Java's `@A.B\n(par=1)\nenum E {}\n` triggers a NESTED cross-line + // fail: the outer `declarations` BP fails alt-0 (class) on line 3 + // and replays lines 1-2 under alt-1 (enum); during line-2 reparse + // the inner `annotation-qualified-identifier` BP fails alt-0 (path) + // and replays both lines under alt-1 (name). The outer's locally- + // computed `replayed_ops[0]` was the (now stale) path-alt parse; + // the inner's correction in `flushed_ops` was the name-alt parse, + // and the outer's `merge_flushed` previously overwrote it. Without + // preferring the inner correction, `meta.enum.java`, + // `meta.annotation.identifier.java`, and `meta.path.java` leaked + // past the closing `}`. + use crate::parsing::SyntaxSet; + struct Record { + stack_before: ScopeStack, + } + let ss = SyntaxSet::load_from_folder("testdata/Packages").unwrap(); + let syntax = ss + .find_syntax_by_path("Packages/Java/Java.sublime-syntax") + .unwrap(); + let mut state = ParseState::new(syntax); + let mut stack = ScopeStack::new(); + let mut buffer: Vec = Vec::new(); + for line in ["@A.B\n", "(par=1)\n", "enum E {}\n"] { + let out = state.parse_line(line, &ss).expect("parse"); + if !out.replayed.is_empty() { + let buf_len = buffer.len(); + let start_idx = buf_len - out.replayed.len(); + stack = buffer[start_idx].stack_before.clone(); + let mut corrected: Vec<(usize, ScopeStack)> = Vec::new(); + for (i, replayed_ops) in out.replayed.iter().enumerate() { + for (_, op) in replayed_ops { + let _ = stack.apply(op); + } + let next_idx = start_idx + i + 1; + if next_idx < buf_len { + corrected.push((next_idx, stack.clone())); + } + } + for (idx, c) in corrected { + buffer[idx].stack_before = c; + } + } + let stack_before = stack.clone(); + for (_, op) in &out.ops { + let _ = stack.apply(op); + } + buffer.push(Record { stack_before }); + } + let ann = Scope::new("meta.annotation.identifier.java").unwrap(); + let path = Scope::new("meta.path.java").unwrap(); + let enum_scope = Scope::new("meta.enum.java").unwrap(); + for scope in [ann, path, enum_scope] { + assert!( + !stack.as_slice().contains(&scope), + "{:?} leaked past closing `}}` into top-level scope; \ + final stack: {:?}", + scope, + stack, + ); + assert!( + !state.shadow.as_slice().contains(&scope), + "syntect shadow still carries {:?}; shadow: {:?}", + scope, + state.shadow, + ); + } + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index 38ca0604..671276ee 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -4,7 +4,7 @@ FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9935 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9774 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index 38ca0604..671276ee 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -4,7 +4,7 @@ FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9935 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9774 FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 From f3e497aa6ac86e58c4568bd9b88ec16163f26628 Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Mon, 27 Apr 2026 09:17:12 +0100 Subject: [PATCH 16/52] Fall through to parent on branch_point exhaustion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a same-line branch_point exhausts at a zero-width lookahead, rewind the cursor to the BP's original position and skip the same-name Branch pattern on retry — letting the parent context's next rule fire instead of advancing past the lookahead, which let stale keyword rules match inside identifiers (`package` in `$package`, `class` in `Foo.class;`). Drops Java syntest 9774 → 1987 (-7787, -80%); jsp 39 → 0; Zsh 604 → 410. Markdown unchanged at 158. No regressions elsewhere. See parser.rs::handle_fail same-line exhaustion handler and the new `skipped_branches` field; new test `exhausted_branch_point_falls_through_to_parent_next_rule`. --- src/parsing/parser.rs | 124 ++++++++++++++++++++-- testdata/known_syntest_failures.txt | 5 +- testdata/known_syntest_failures_fancy.txt | 5 +- 3 files changed, 119 insertions(+), 15 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index a5b64181..1efb730f 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -143,6 +143,16 @@ pub struct ParseState { /// `link-def-attr-continuation` whose own fail then replayed line 3 /// without the original captures. replay_prefix_ops: Option>, + /// Branch_points whose alternatives have all been exhausted at a + /// specific cursor position on the current line. Subsequent + /// `find_best_match` calls at that position skip the matching pattern + /// so the parent context's NEXT rule gets a chance — Sublime Text's + /// behaviour. Without this, syntect's prior approach (advance one + /// character past the lookahead) lets stale keyword rules match in + /// the middle of identifiers (e.g. `package` inside `$package` after + /// `declarations` exhausted on the leading `$`). Cleared whenever + /// the cursor moves. + skipped_branches: Vec<(usize, String)>, } /// Bookkeeping override used while `handle_fail` is re-parsing a @@ -400,6 +410,7 @@ impl ParseState { shadow: ScopeStack::new(), replay_ctx: None, replay_prefix_ops: None, + skipped_branches: Vec::new(), } } @@ -431,6 +442,10 @@ impl ParseState { return Err(ParsingError::MissingMainContext); } + // Skipped-branch entries are tied to byte offsets within a single + // line — they don't survive across line boundaries. + self.skipped_branches.clear(); + // Prune branch points older than 128 lines let cur_line = self.line_number; let warnings = &mut self.warnings; @@ -701,6 +716,11 @@ impl ParseState { *start = match_end; + // Prune stale skipped_branches entries: a BP marked as skipped + // at an older cursor position no longer matters once the + // cursor has advanced past that position. + self.skipped_branches.retain(|(c, _)| *c >= *start); + // ignore `with_prototype`s below this if a context is pushed if reg_match.from_with_prototype { // use current height, since we're before the actual push @@ -723,6 +743,18 @@ impl ParseState { )?; Ok(true) + } else if self.skipped_branches.iter().any(|(c, _)| *c == *start) { + // No pattern matched, but we suppressed at least one Branch + // at this cursor (its alts all exhausted). Advance one char as + // a last resort to break the loop. + self.skipped_branches.retain(|(c, _)| *c != *start); + if let Some((i, _)) = line[*start..].char_indices().nth(1) { + *start += i; + search_cache.clear(); + Ok(true) + } else { + Ok(false) + } } else { Ok(false) } @@ -807,6 +839,19 @@ impl ParseState { for (pat_context, pat_index) in context_iter(syntax_set, syntax_set.get_context(ctx)?) { let match_pat = pat_context.match_at(pat_index)?; + // Skip Branch patterns whose name was just exhausted at this + // cursor. See ParseState::skipped_branches and the same-line + // exhaustion handler in handle_fail. + if let MatchOperation::Branch { name, .. } = &match_pat.operation { + if self + .skipped_branches + .iter() + .any(|(c, n)| *c == start && n == name) + { + continue; + } + } + if let Some(match_region) = self.search_with_end( line, start, @@ -1177,7 +1222,7 @@ impl ParseState { fn handle_fail( &mut self, name: &str, - line: &str, + _line: &str, start: &mut usize, non_consuming_push_at: &mut (usize, usize), ops: &mut Vec<(usize, ScopeStackOp)>, @@ -1373,14 +1418,21 @@ impl ParseState { return Ok(true); } - // Same-line exhaustion: advance one char past the branch_point match - // to avoid immediately re-matching the same `(?=...)` lookahead. - if let Some((i, _)) = line[match_start_pos..].char_indices().nth(1) { - *start = match_start_pos + i; - } else { - // End of line — no character to advance past. - *start = line.len(); - } + // Same-line exhaustion: rewind the cursor to the BP's + // original position and record the branch_point's name so + // subsequent `find_best_match` calls at that position skip + // the same-name Branch pattern. This lets the parent + // context's NEXT rule fire instead of advancing past the + // lookahead match — mirrors ST's branch-point exhaustion + // semantics. The previous behaviour (advance one char) let + // stale keyword rules match in the middle of identifiers, + // e.g. `package` inside `$package` after `declarations` + // exhausted on the leading `$`. If `find_best_match` + // returns nothing at this cursor, `parse_next_token`'s + // no-match fallback advances one char as a last resort. + self.skipped_branches + .push((match_start_pos, name.to_string())); + *start = match_start_pos; search_cache.clear(); return Ok(true); } @@ -7348,4 +7400,58 @@ contexts: ); } } + + #[cfg(feature = "default-onig")] + #[test] + fn exhausted_branch_point_falls_through_to_parent_next_rule() { + // Java's `$x ;` at top level: the `declarations` branch_point's + // zero-width `(?=[\p{L}_$@<])` lookahead matches `$`. All five + // alternatives (class/enum/interface/variable/method) fail + // because `$x` isn't a valid declaration. ST then falls through + // to the `java` context's NEXT rule (`else-expressions`), which + // pushes an `expression` chain that scopes `$x` as + // `meta.variable.identifier.java variable.other.java`. Syntect + // previously advanced one character past the lookahead, letting + // the next iteration's regex set match `package` / `class` etc. + // in the middle of identifiers like `package$` or `$package`. + // + // After this fix, exhausting a branch_point at a position + // rewinds the cursor to that position and marks the + // branch_point's name as skipped — so the parent context's + // remaining rules get a chance to fire at the same cursor. + use crate::parsing::SyntaxSet; + let ss = SyntaxSet::load_from_folder("testdata/Packages").unwrap(); + let syntax = ss + .find_syntax_by_path("Packages/Java/Java.sublime-syntax") + .unwrap(); + let mut state = ParseState::new(syntax); + let mut stack = ScopeStack::new(); + let dollar_id = "$x ;\n"; + let out = state.parse_line(dollar_id, &ss).expect("parse"); + for (_, op) in &out.ops { + let _ = stack.apply(op); + } + let var_id = Scope::new("meta.variable.identifier.java").unwrap(); + let var_other = Scope::new("variable.other.java").unwrap(); + // `$x` itself is fully popped at `;`; reconstruct the per-byte + // scope by walking ops up to byte 1 (`x`) and confirm the + // identifier scope was active there. + let mut mid = ScopeStack::new(); + for (pos, op) in &out.ops { + if *pos > 1 { + break; + } + let _ = mid.apply(op); + } + assert!( + mid.as_slice().contains(&var_id), + "expected meta.variable.identifier.java active over `$x`; got: {:?}", + mid, + ); + assert!( + mid.as_slice().contains(&var_other), + "expected variable.other.java active over `$x`; got: {:?}", + mid, + ); + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index 671276ee..07ce9ac6 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -4,12 +4,11 @@ FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9774 -FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1987 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 FAILED testdata/Packages/ShellScript/Bash/tests/syntax_test_scope.bash: 249 -FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 604 +FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 410 exiting with code 1 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index 671276ee..07ce9ac6 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -4,12 +4,11 @@ FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 9774 -FAILED testdata/Packages/Java/tests/syntax_test_jsp.jsp: 39 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1987 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 FAILED testdata/Packages/Python/tests/syntax_test_python_strings.py: 1 FAILED testdata/Packages/ShellScript/Bash/tests/syntax_test_scope.bash: 249 -FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 604 +FAILED testdata/Packages/ShellScript/Zsh/tests/syntax_test_scope.zsh: 410 exiting with code 1 From ed949e4c2098cdfaa9e138ad9614c530430c32d5 Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Mon, 27 Apr 2026 09:38:29 +0100 Subject: [PATCH 17/52] Restore cleared scopes before deeper pops in pop:N MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `push_meta_ops`'s non-initial phase emitted the deep-context meta_scope/mcs Pops before restoring `cur_context.clear_scopes`. When the cleared atom belonged to one of the deeper contexts being popped, the Pops landed on the wrong (still-visible) scope — observed on Java's `case DayType when -> "incomplete"`, where `case-label-expression`'s `clear_scopes: 1` hid `case-label`'s `meta.case.java` and `case-label-end`'s `pop: 2` then popped the surrounding switch block off the consumer's stack. Move the cur_context Restore to before the depth loop so the previously-cleared atom is visible again when the deeper-context Pop lands on it. Drops Java syntest 1987 → 949 (-1038, additional -50%); fixes C#'s `syntax_test_GeneralStructure.cs` (was 2 → 0) and Haskell -1. Markdown unchanged at 158, no other regressions. See `parser.rs::push_meta_ops` Pop arm and the new test `pop_n_restores_clear_before_unwinding_deeper_meta_scopes`. --- src/parsing/parser.rs | 78 +++++++++++++++++++---- testdata/known_syntest_failures.txt | 5 +- testdata/known_syntest_failures_fancy.txt | 5 +- 3 files changed, 70 insertions(+), 18 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index 1efb730f..af830bcc 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -1839,19 +1839,29 @@ impl ParseState { if !cur_context.meta_scope.is_empty() { ops.push((index, ScopeStackOp::Pop(cur_context.meta_scope.len()))); } + // Restore cur_context's `clear_scopes` BEFORE + // popping deeper contexts. The Clear hid the + // deeper context's meta_scope/mcs atoms; with the + // Restore deferred to the very end, the + // depth-loop's `Pop(deep.meta_scope.len())` would + // pop visible-stack scopes that don't belong to + // the deeper context — observed on Java's + // `case DayType when -> "incomplete"`, where + // `case-label-expression`'s `clear_scopes: 1` + // cleared `case-label`'s `meta.case.java` and + // `case-label-end`'s `pop: 2` then popped the + // surrounding `meta.block.java` (switch's block) + // off the consumer's stack instead. + if cur_context.clear_scopes.is_some() { + ops.push((index, ScopeStackOp::Restore)) + } // Each deeper context's scopes are popped in // top-to-bottom order: meta_content_scope first // (pushed after its own meta_scope, hence above on // the stack), then meta_scope, then any Restore // paired with that context's own `clear_scopes` // (mirrors the push order Clear → meta_scope → mcs - // in reverse). Without the Restore, a `pop: N` - // from the top that also unwinds a deeper context - // with `clear_scopes` leaves the originally cleared - // atoms orphaned — observed on Python f/t-string - // interpolation close, where `f-string-replacement-end` - // fires `pop: 2` that also pops - // `f-string-replacement-meta`. + // in reverse). for depth in 1..pop_count { let level_idx = stack_len - 1 - depth; let ctx = syntax_set.get_context(&self.stack[level_idx].context)?; @@ -1872,11 +1882,6 @@ impl ParseState { } } } - - // cleared scopes are restored after the scopes from match pattern that invoked the pop are applied - if !initial && cur_context.clear_scopes.is_some() { - ops.push((index, ScopeStackOp::Restore)) - } } // for some reason the ST3 behaviour of set is convoluted and is inconsistent with the docs and other ops // - the meta_content_scope of the current context is applied to the matched thing, unlike pop @@ -7454,4 +7459,53 @@ contexts: mid, ); } + + #[cfg(feature = "default-onig")] + #[test] + fn pop_n_restores_clear_before_unwinding_deeper_meta_scopes() { + // Java's `case DayType when -> "incomplete";` lands in + // `case-label-expression` (clear_scopes:1, mcs: case.label). + // The `clear_scopes:1` hides the parent `case-label`'s + // `meta_scope` (meta.case). When `case-label-end` matches + // `->` with `pop: 2`, the rule must unwind both + // `case-label-expression` AND `case-label`. With the deeper + // meta_scope Pop emitted before the cur_context's clear was + // restored, the consumer popped the wrong (still-visible) + // scope — the surrounding `meta.block.java` (switch's block) + // — leaving `meta.case.java` orphaned past the `->`. + // + // Restoring cur_context's clear BEFORE the depth-loop's + // deeper-meta_scope pops makes the previously-cleared atom + // visible again so it can be popped correctly. + use crate::parsing::SyntaxSet; + let ss = SyntaxSet::load_from_folder("testdata/Packages").unwrap(); + let syntax = ss + .find_syntax_by_path("Packages/Java/Java.sublime-syntax") + .unwrap(); + let mut state = ParseState::new(syntax); + let mut stack = ScopeStack::new(); + for line in [ + "class C {\n", + " void f(Object o) {\n", + " return switch (o) {\n", + " case DayType when -> \"incomplete\";\n", + ] { + let out = state.parse_line(line, &ss).expect("parse"); + for (_, op) in &out.ops { + let _ = stack.apply(op); + } + } + let case = Scope::new("meta.statement.conditional.case.java").unwrap(); + let label = Scope::new("meta.statement.conditional.case.label.java").unwrap(); + assert!( + !stack.as_slice().contains(&case), + "meta.statement.conditional.case.java leaked past `->`; stack: {:?}", + stack, + ); + assert!( + !stack.as_slice().contains(&label), + "meta.statement.conditional.case.label.java leaked past `->`; stack: {:?}", + stack, + ); + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index 07ce9ac6..8e6bb9b4 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -1,10 +1,9 @@ loading syntax definitions from testdata/Packages FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 -FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 -FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1987 +FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 49 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 949 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index 07ce9ac6..8e6bb9b4 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -1,10 +1,9 @@ loading syntax definitions from testdata/Packages FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 -FAILED testdata/Packages/C#/tests/syntax_test_GeneralStructure.cs: 2 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 -FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 50 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 1987 +FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 49 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 949 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 From 0a2139a55f7e0e5d51ecfff25b39065109ebdb6f Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Mon, 27 Apr 2026 10:19:14 +0100 Subject: [PATCH 18/52] Skip inner replay correction when nested deeper than outer BP --- src/parsing/parser.rs | 171 +++++++++++++++++++++- testdata/known_syntest_failures.txt | 2 +- testdata/known_syntest_failures_fancy.txt | 2 +- 3 files changed, 170 insertions(+), 5 deletions(-) diff --git a/src/parsing/parser.rs b/src/parsing/parser.rs index af830bcc..37c088ef 100644 --- a/src/parsing/parser.rs +++ b/src/parsing/parser.rs @@ -103,6 +103,13 @@ pub struct ParseState { /// Pending-lines index that `flushed_ops[0]` maps to when `flushed_ops` /// is non-empty. Reset to `None` between `parse_line` calls. flushed_ops_start: Option, + /// Identity of the branch point whose cross-line replay produced + /// `flushed_ops`. `None` when `flushed_ops_start` is `None`. + /// Used by `prefer_inner_replay_corrections` to discriminate + /// between an inner BP whose correction is structurally a refinement + /// of the outer BP's resolved alternative (prefer) vs. one that + /// would over-apply (keep outer). + flushed_ops_bp: Option, /// Warnings accumulated during parsing, drained into `ParseLineOutput`. warnings: Vec, /// Active escape patterns from embed operations. The escape regex takes @@ -155,6 +162,19 @@ pub struct ParseState { skipped_branches: Vec<(usize, String)>, } +/// Identity of a branch point whose cross-line replay wrote ops to +/// `flushed_ops`. Captured so `prefer_inner_replay_corrections` can +/// compare the inner BP (whose corrections are candidate replacements) +/// against the outer BP (whose locally-computed replay is the default). +#[derive(Debug, Clone, Eq, PartialEq)] +struct BpInfo { + name: String, + /// Stack depth at branch creation (mirrors `BranchPoint::stack_depth`). + stack_depth: usize, + /// Line number at branch creation (mirrors `BranchPoint::line_number`). + line_number: usize, +} + /// Bookkeeping override used while `handle_fail` is re-parsing a /// buffered past line. See the `replay_ctx` field on `ParseState`. #[derive(Debug, Clone, Eq, PartialEq)] @@ -405,6 +425,7 @@ impl ParseState { pending_line_start_shadows: Vec::new(), flushed_ops: Vec::new(), flushed_ops_start: None, + flushed_ops_bp: None, warnings: Vec::new(), escape_stack: Vec::new(), shadow: ScopeStack::new(), @@ -469,6 +490,7 @@ impl ParseState { // parse above. These are stored by `handle_fail` in `self.flushed_ops`. let replayed = std::mem::take(&mut self.flushed_ops); self.flushed_ops_start = None; + self.flushed_ops_bp = None; // Update shadow to reflect consumer's view at end of this line. // The consumer (see `syntest`) resets its scope stack to @@ -1180,15 +1202,29 @@ impl ParseState { /// Composition rule, given current start `a` and new fail's `snap`: /// - `snap <= a`: new fail supersedes everything; replace. /// - `snap > a`: keep `[a..snap)` from prior fails, replace `[snap..N)`. - fn merge_flushed(&mut self, snap: usize, new_ops: Vec>) { + /// + /// `bp_info` records the BP whose replay produced `new_ops`; stored + /// alongside `flushed_ops_start` for later use by + /// `prefer_inner_replay_corrections`. When two cross-line fails on + /// the same `parse_line` both contribute, we keep the BP info of the + /// one that ultimately owns the prefix (matches the start-replacement + /// rules above). + fn merge_flushed( + &mut self, + snap: usize, + new_ops: Vec>, + bp_info: BpInfo, + ) { match self.flushed_ops_start { None => { self.flushed_ops = new_ops; self.flushed_ops_start = Some(snap); + self.flushed_ops_bp = Some(bp_info); } Some(start) if snap <= start => { self.flushed_ops = new_ops; self.flushed_ops_start = Some(snap); + self.flushed_ops_bp = Some(bp_info); } Some(start) => { let keep = snap - start; @@ -1198,12 +1234,37 @@ impl ParseState { } } + /// Replace `replayed_ops[i]` with `inner_ops` for overlapping + /// indices. Only fires when the inner BP was created at a stack + /// depth less-than-or-equal to the outer BP's depth — i.e. the + /// inner BP is a sibling-or-shallower correction at the same + /// structural level, not a nested BP firing inside outer's resolved + /// alternative. The "deeper inner" case is the multigen16 + /// regression seat: outer = `class-members` at depth 4, inner = + /// `object-type` at depth 9 (nested inside outer's resolved field + /// alt). Preferring its corrections doubled `meta.field.type.java` + /// on `Java/syntax_test_java.java:3462+` because outer's full-line + /// ops correctly emit one `meta.field.type` and inner's reparse + /// adds another. + /// + /// The depth-equal case is the original `@A.B\n(par=1)\nenum E {}` + /// regression seat from PR #663: outer and inner are both + /// `declarations` at depth 3 — sibling resolutions of the same + /// branch family, and inner's `name`-alt CORRECTLY supersedes + /// outer's locally-computed `path`-alt freeze. fn prefer_inner_replay_corrections( outer_snap: usize, replayed_ops: &mut [Vec<(usize, ScopeStackOp)>], inner_ops: &[Vec<(usize, ScopeStackOp)>], inner_start: usize, + outer_bp: &BpInfo, + inner_bp: Option<&BpInfo>, ) { + if let Some(inner) = inner_bp { + if inner.stack_depth > outer_bp.stack_depth { + return; + } + } for (i, outer_local) in replayed_ops.iter_mut().enumerate() { let global_i = outer_snap + i; if global_i < inner_start { @@ -1319,6 +1380,11 @@ impl ParseState { let match_start_pos = bp.match_start; let pending_lines_snapshot_len = bp.pending_lines_snapshot_len; let prefix_ops = bp.prefix_ops.clone(); + let outer_bp_info = BpInfo { + name: bp.name.clone(), + stack_depth: bp.stack_depth, + line_number: bp.line_number, + }; self.branch_points.remove(bp_index); self.stack = stack_snapshot; @@ -1349,6 +1415,7 @@ impl ParseState { // write into a clean slot we can detect afterward. let saved_flushed = std::mem::take(&mut self.flushed_ops); let saved_flushed_start = self.flushed_ops_start.take(); + let saved_flushed_bp = self.flushed_ops_bp.take(); let mut replayed_ops: Vec> = Vec::with_capacity(truncated_lines.len()); for (i, replay_line) in truncated_lines.iter().enumerate() { @@ -1395,8 +1462,10 @@ impl ParseState { // then prefer the inner corrections for overlapping indices. let inner_corrections = std::mem::take(&mut self.flushed_ops); let inner_corrections_start = self.flushed_ops_start.take(); + let inner_corrections_bp = self.flushed_ops_bp.take(); self.flushed_ops = saved_flushed; self.flushed_ops_start = saved_flushed_start; + self.flushed_ops_bp = saved_flushed_bp; if let Some(start) = inner_corrections_start { if !inner_corrections.is_empty() { Self::prefer_inner_replay_corrections( @@ -1404,10 +1473,16 @@ impl ParseState { &mut replayed_ops, &inner_corrections, start, + &outer_bp_info, + inner_corrections_bp.as_ref(), ); } } - self.merge_flushed(pending_lines_snapshot_len, replayed_ops); + self.merge_flushed( + pending_lines_snapshot_len, + replayed_ops, + outer_bp_info.clone(), + ); // Restart the current line from the beginning under the // restored state. @@ -1456,6 +1531,11 @@ impl ParseState { let pending_lines_snapshot_len = bp.pending_lines_snapshot_len; let escape_stack_snapshot = bp.escape_stack_snapshot.clone(); let prefix_ops = bp.prefix_ops.clone(); + let outer_bp_info = BpInfo { + name: bp.name.clone(), + stack_depth: bp.stack_depth, + line_number: bp.line_number, + }; // bp borrow ends here. let pop_count = self.branch_points[bp_index].pop_count; @@ -1595,6 +1675,7 @@ impl ParseState { // into a clean slot we can detect afterward. let saved_flushed = std::mem::take(&mut self.flushed_ops); let saved_flushed_start = self.flushed_ops_start.take(); + let saved_flushed_bp = self.flushed_ops_bp.take(); let mut replayed_ops: Vec> = Vec::with_capacity(truncated_lines.len()); @@ -1644,8 +1725,10 @@ impl ParseState { // resolution arrived (during line-2 reparse). let inner_corrections = std::mem::take(&mut self.flushed_ops); let inner_corrections_start = self.flushed_ops_start.take(); + let inner_corrections_bp = self.flushed_ops_bp.take(); self.flushed_ops = saved_flushed; self.flushed_ops_start = saved_flushed_start; + self.flushed_ops_bp = saved_flushed_bp; if let Some(start) = inner_corrections_start { if !inner_corrections.is_empty() { Self::prefer_inner_replay_corrections( @@ -1653,10 +1736,16 @@ impl ParseState { &mut replayed_ops, &inner_corrections, start, + &outer_bp_info, + inner_corrections_bp.as_ref(), ); } } - self.merge_flushed(pending_lines_snapshot_len, replayed_ops); + self.merge_flushed( + pending_lines_snapshot_len, + replayed_ops, + outer_bp_info.clone(), + ); // Restart the current line from the beginning. ops.clear(); @@ -7508,4 +7597,80 @@ contexts: stack, ); } + + #[cfg(feature = "default-onig")] + #[test] + fn deeper_inner_bp_correction_does_not_double_outer_meta_scope() { + // `class C { @anno /**/ fully\n. @anno qualified\n/**/ . /**/\n@anno /**/ object @anno()` + // triggers a NESTED cross-line replay where the inner BP is + // structurally a child of the outer BP's resolved alternative + // (outer `class-members` at depth 4, inner `object-type` at + // depth 9). PR #663's `prefer_inner_replay_corrections` + // unconditionally replaced outer's locally-computed ops with + // inner's corrections, doubling `meta.field.type.java` on the + // `object @anno()` line — outer's full-line ops correctly + // emit one `meta.field.type` and inner's reparse adds another + // because outer's chosen alt already provides that meta_scope. + // + // Discriminator: only prefer inner when its stack_depth is at + // most outer's. Equal-depth siblings (PR #663's original + // `@A.B\n(par=1)\nenum E {}` case) keep preferring inner; + // strictly-deeper nested BPs stay with outer's ops. + use crate::parsing::SyntaxSet; + let ss = SyntaxSet::load_from_folder("testdata/Packages").unwrap(); + let syntax = ss + .find_syntax_by_path("Packages/Java/Java.sublime-syntax") + .unwrap(); + let mut state = ParseState::new(syntax); + let mut stack = ScopeStack::new(); + for line in [ + "class C {\n", + " @anno /**/ fully\n", + " . @anno qualified\n", + " /**/ . /**/\n", + " @anno /**/ object @anno()\n", + ] { + let out = state.parse_line(line, &ss).expect("parse"); + for (_, op) in &out.ops { + let _ = stack.apply(op); + } + } + // Reconstruct the running stack at byte position 13 of line 5 + // (`object`), where the regression's doubled push was visible. + let mut at_object = ScopeStack::new(); + let last_line = " @anno /**/ object @anno()\n"; + let mut state2 = ParseState::new(syntax); + let prelude = [ + "class C {\n", + " @anno /**/ fully\n", + " . @anno qualified\n", + " /**/ . /**/\n", + ]; + for line in prelude { + let out = state2.parse_line(line, &ss).expect("parse"); + for (_, op) in &out.ops { + let _ = at_object.apply(op); + } + } + let out = state2.parse_line(last_line, &ss).expect("parse"); + for (pos, op) in &out.ops { + if *pos > 13 { + break; + } + let _ = at_object.apply(op); + } + let field_type = Scope::new("meta.field.type.java").unwrap(); + let doubled = at_object + .as_slice() + .iter() + .filter(|s| **s == field_type) + .count(); + assert!( + doubled <= 1, + "meta.field.type.java pushed {} times entering `object` on \ + line 5 (expected at most 1); stack: {:?}", + doubled, + at_object, + ); + } } diff --git a/testdata/known_syntest_failures.txt b/testdata/known_syntest_failures.txt index 8e6bb9b4..e0b36850 100644 --- a/testdata/known_syntest_failures.txt +++ b/testdata/known_syntest_failures.txt @@ -3,7 +3,7 @@ FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 49 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 949 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 641 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 diff --git a/testdata/known_syntest_failures_fancy.txt b/testdata/known_syntest_failures_fancy.txt index 8e6bb9b4..e0b36850 100644 --- a/testdata/known_syntest_failures_fancy.txt +++ b/testdata/known_syntest_failures_fancy.txt @@ -3,7 +3,7 @@ FAILED testdata/Packages/C#/tests/syntax_test_C#11.cs: 35 FAILED testdata/Packages/Clojure/tests/syntax_test_shebang.clj: 1 FAILED testdata/Packages/D/tests/syntax_test_shebang.d: 1 FAILED testdata/Packages/Haskell/tests/syntax_test_haskell.hs: 49 -FAILED testdata/Packages/Java/tests/syntax_test_java.java: 949 +FAILED testdata/Packages/Java/tests/syntax_test_java.java: 641 FAILED testdata/Packages/Markdown/tests/syntax_test_markdown.md: 158 FAILED testdata/Packages/PHP/tests/syntax_test_php.php: 1 FAILED testdata/Packages/Python/tests/syntax_test_python.py: 66 From d36dc01cc806e572ba3321172497a164cfc7a0b8 Mon Sep 17 00:00:00 2001 From: Stefano Baghino Date: Mon, 27 Apr 2026 20:32:11 +0100 Subject: [PATCH 19/52] Treat pop:N + push:X as Set with pop_count=N MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The YAML loader checked `set:`, `branch:`, and `embed:` after a `pop:` key but never `push:`. Combined `pop: N + push: X` rules degraded to a plain `Pop(N)` and silently dropped the push, leaving the parser on the outer context instead of the intended target. Affected rules in vendored syntaxes: Java's `pop: 2 + push: annotation-parameters-body` (lambda3 line 10069 and many others) and `pop: 1 + push: case-label-expression`; Python's `pop: 2 + push: function-parameter-list-body` and `type-parameter-list-body`. Java syntest 641 → 245 (-396); Python 66 → 45 (-21). Other language baselines unchanged. --- assets/default_newlines.packdump | Bin 2386976 -> 2387635 bytes assets/default_nonewlines.packdump | Bin 2131860 -> 2132681 bytes src/parsing/yaml_load.rs | 63 ++++++++++++++++++++++ testdata/known_syntest_failures.txt | 4 +- testdata/known_syntest_failures_fancy.txt | 4 +- 5 files changed, 67 insertions(+), 4 deletions(-) diff --git a/assets/default_newlines.packdump b/assets/default_newlines.packdump index 54977dc02954af9294188f413689a8f7a4acba6d..9e45d9bd0db7f662135a359e5f15fcdcb25d977c 100644 GIT binary patch delta 212894 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

^ry&Rn?f5K4woTd?@`nhFjHs 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Ξ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 diff --git a/assets/default_nonewlines.packdump b/assets/default_nonewlines.packdump index 21e4c431ed439e421496c348952e5cc3a70e51e3..e6922f670d5db1b290cd133c84f17378ba5a4e0a 100644 GIT binary patch delta 155274 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%0ADnJ3a@aW!hOpL?z7;fMbCaq<0H5% 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%0DnRxYV4}mbNz}y9}m`!kK zhp*wysvCg1xbnSS>9v)MQshe3Evf@`1pZ0e27THDv4mbwvLB^Jab+Olu}oudT{Pmc zP_Nu{kV52uzuwSPIOSPTwcGmgBxQ>OY7$GbTMng_)?Z-UrdHvDePyXz9Fy=ie2t-# zLp{L!?y`TGKuTlAKPGPz+&2-a!IVF#K7oE=;xLjw_U6tTC90Lh%>V<4zbwT~jomvX}iv+=+4z!>+-F{Vk49q(3 zJ`Ch@W$F5xr8kyQ=npp6t2nazh#&K15jdoWwSwvF`@zW(w(@@>+vBgCL#}Xbn^S4` zJW|Js-+yKNu#ru&Vt`!iNMd7v1T6Zx&`ypR^}om@6ofaNko4m9T;vAN3U0}ts1!5J z4JX`;FUhQ(CDw0`OMXhE!*t)4E6&CCBpLbf3TwKLPks63&jwTG&I9 zLl`ZabsSi9OyUo{`&Iy4pfGAoQ%&0>RDT1y)0615hmLWx18tQq5 zBCoL->TjtpdPQK(!usBkG)e&&EJsdsUBVb7&jI)czRrKgg%@1@wIC6zEyq~mR#`26 zbn+L$Y8#0Yl288O$6AQwkJGTqDw~`rv84xP{A5qB;}LBy5ZCyvc!Bd;>}YExOXFFR zd8Af)b9X5C&6Y)g3QV_LQF70&Dh+#g3om$Z9-fjXF`DlNC$vWK<06iVL%`!KaNJ{Q zq_KyZ%17{lL!$AHMdc%kCVFuBk6vuLR0CjbgJhavN^?!z#hT6xN{f6RN8U{*(ujIORogmj;BZ-Y zMfqxulSKhW5L-lN;ar%>Ys4^7^#)qYk)hYNVxPhQzvek>$`#u(It{0tvyqT?X?73+ zJUD)**zjaAz1*tQ(*?p6c5v_ltiGP86NJj5cvx1zvZ_{e&xph#A5qH6NJNlPP~x`8 zcz9Cnfhmk$`;3HRor2<&pm0M9tWdw0!mo*=9Z3q7P9sMja6Zk5Yy)()3b|OIkh%74kMDzmwT2ctxh`4>BqgvsM2hLlltuuPt0HGIHsRnHhY7Ygh1%9 z;^&cW}#Z_U-{lZ2~uvElV?SM6MY2W!eFV`aD2fw$sutC)A9^U`A=>H@1> ziSn!w4pzA05LTa1Ut0Cq6>I4vVs!I(F>eGUX2qe@kcu8WPGX5I_xQz+t7(QP!xi}L z4tHR1J8;h3)-ItM*R3rUrz%5BkNh|BpgPG=*ZPl}@E|U~-F^tB=du+L_xQMu_+NJb zJpZZS%fV{mrHC`?1^+6lSEn;d!H5;lA4rc$DIxwOyZI*6d$efV1b@OoJc+m{(6Lr@8!gLWup7@`o99n*pQ_=^Jeo~g%rj$p3DNRf8 z*Gxk(h4W(NpLG@lSfjW(Uj_tQ@zAD1DxC|QkNEj__=vcf0BNRe*|bhhdHE@;(K~f9 zh3`Z}#=z5kRN&|Y?yh#N?S3Nv*;aPLCr@ALj{iFV^0UkfP!3^)iS+#jlpfSN&d_VSYD{sf<=l3@Nfm?0ZpVLk<$fJ=Z4!;)aUhKGjdV(^iZI|Fz1~2Qm zhVA)h7$*7IDQno%Y$D<&cC-ZtZ>53>M1+OHaH&2+7 zHP0VI6&8Ujriik|?r|{hoz@DRFc-7{7_99EsA@*! z=Ylh31+v>zPRmjY!TT2wZ5ssJ2#`UFd4M?j!(ft)K?upvVP~RYr21dUK zaRpd*C#X6(;>FPerlU7`2{H*T@AK2k%U2@Iv`Qm~UblkSYz+$F(C`9X6j(BueSBb#Gbi

    Xu*;s?Dj{y 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