Repository navigation
fix: emit missing DFA_UNROLLED helpers in APT matchers - #147
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #147 +/- ##
=========================================
+ Coverage 84.9% 85.1% +0.2%
Complexity 1 1
=========================================
Files 163 163
Lines 49002 48870 -132
Branches 7009 6970 -39
=========================================
+ Hits 41613 41614 +1
+ Misses 5379 5255 -124
+ Partials 2010 2001 -9
... and 5 files with indirect coverage changes Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
What does this PR do?
Fixes two places where annotation-processor (APT) matchers on the
DFA_UNROLLED*path call a member the processor never generates. In both casesRuntimeCompileralready emits the member, soReggie.compileworks and only APT matchers fail.findMatchFromForMatch: tagged-DFAmatch()calls the privatefindMatchFromForMatchhelper, which the processor never emitted, somatch()threwNoSuchMethodError. Repro:(?i)^https?://. The processor now callsgenerateFindMatchFromMethodTaggedNoCut. That method now returns early unlessuseTaggedDFA && groupCount > 0, the only case in whichmatch()calls the helper.generateLookupTables, so charsets with 100+ ranges (e.g..*[\p{IsAlphabetic}].*) threwNoSuchFieldError: $cs_0. The call now comes after everygenerate*Method.Also adds two blank lines to
AGENTS.md, written by the SessionStart hook.Motivation
APT-generated matchers threw at runtime for patterns that work with
Reggie.compile. This is the same dual-path gap as #136.Related Issue(s)
Same class of bug as #136.
Change Type
Checklist
./gradlew build)Performance Impact
None. The change only adds members that were missing from generated classes.
Additional Notes
./gradlew :reggie-processor:test :reggie-runtime:test :reggie-codegen:test. The full./gradlew buildhas not been run.DFA_SWITCHandDFA_TABLEfor the same gap; none found. Their private helpers (matchesAtStart,findMatchEnd,$nb_step_N,$fe_step_N) are emitted by the methods that call them, andDFA_TABLEdecoders are runtime static methods.ReggieMatcherBytecodeGeneratorTest:taggedDfaUnrolledMatchHelperIsGeneratedanddfaUnrolledLookupTablesAreGenerated.🤖 Generated with Claude Code