Repository navigation
Java recovery guards, JSX-aware textmask, Rust receiver markers - #8
Merged
Merged
Conversation
…bers rejoin their class
An unterminated char literal mid-edit made tree-sitter recover `if (x) {`
as a constructor named "if" and `return bean;` as a field of type
"return". A constructor must be named after its class, a method not after
a keyword, and a field's type is never a keyword. Members recovered
without an enclosing type are attached to the innermost type whose span
contains them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KXa6Cv1ZUXcdMqXcJfQFhX
JSX text children were lexed as code: `<code>src/*.ts</code>` opened a
block comment to the end of the file, a backtick a template literal. grove
masks callers' bodies to find local declarations and default exports, so
TSX files got phantom callers (a locally shadowed helper bound to the
imported one) and lost a default-export caller. Where an expression starts
in TSX/JavaScript, `<Name` now opens an element whose text children are
literal text and whose `{...}` children are code. And `if (x) /re/.test(s)`
read the regex as division: a `)` closing an if/while/for/with condition
now admits a regex.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KXa6Cv1ZUXcdMqXcJfQFhX
`"test".as_bytes()` and `doc[start..].find('}')` arrived as bare calls
("as_bytes", "find"), which the graph resolved like free functions to
every same-named function and method. The receiver is now kept as a
marker, <str> or <slice>, also for `"x".parse()` inside macros.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KXa6Cv1ZUXcdMqXcJfQFhX
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three extraction fixes from the 2026-10-14 bug list:
if, a field typedreturn); orphaned members rejoin the innermost enclosing type.{...}children code); a)closing an if/while/for/with condition admits a regex.<str>/<slice>instead of arriving as bare calls.Each has a test that fails on the old code. Full suite green; grove's 20 accuracy oracles within baseline against this code.
🤖 Generated with Claude Code
https://claude.ai/code/session_01KXa6Cv1ZUXcdMqXcJfQFhX