Skip to content

feat: lang handler refactor + parser improvements#246

Open
gzenz wants to merge 1 commit intotirth8205:mainfrom
gzenz:feat/lang-handler-refactor
Open

feat: lang handler refactor + parser improvements#246
gzenz wants to merge 1 commit intotirth8205:mainfrom
gzenz:feat/lang-handler-refactor

Conversation

@gzenz
Copy link
Copy Markdown
Contributor

@gzenz gzenz commented Apr 12, 2026

Summary

  • Extract per-language logic from parser.py into 21 handler classes in code_review_graph/lang/
  • Add BaseLanguageHandler with 7-method interface for language-specific parsing
  • New language support: Luau, Objective-C, Bash, Elixir
  • Parser accuracy: typed variable call resolution, star import expansion, method call noise filtering, Angular template parsing, Dart call extraction

Split from #158 (1/5). Independent -- targets main.

Test plan

  • 690 tests pass (120 new), 0 failures
  • Ruff + mypy clean
  • All existing parser tests still pass (no regressions)

🤖 Generated with Claude Code

…ements

Refactor parser.py to use a strategy pattern for language-specific logic:
- Add BaseLanguageHandler with 7-method interface (get_name, get_bases,
  extract_import_targets, collect_import_names, resolve_module,
  extract_constructs, builtin_names)
- 21 handler implementations in code_review_graph/lang/ for all supported
  languages including new Luau support
- Thread-safe handler registration and type-set caching

Parser accuracy improvements:
- Typed variable call resolution for Python, Kotlin, Java, JS/TS
- Star import expansion via __all__ or module-level definitions
- Method call noise filtering via _INSTANCE_METHOD_BLOCKLIST (48 methods)
- Function/class reference detection in call args and return values
- Angular .component.html template parsing
- Dart call extraction for non-standard AST structure
- Receiver filtering (self/cls/this/super/uppercase)
@gzenz gzenz force-pushed the feat/lang-handler-refactor branch from edf0aa1 to ac1ccb9 Compare April 12, 2026 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant