Skip to content

Ruby parser: fix 11 finder bugs#113

Open
gadievron wants to merge 3 commits into
masterfrom
pr/ruby-parser
Open

Ruby parser: fix 11 finder bugs#113
gadievron wants to merge 3 commits into
masterfrom
pr/ruby-parser

Conversation

@gadievron

Copy link
Copy Markdown
Collaborator

Ruby parser: fix 11 finder bugs

Local-only branch pr/ruby-parser off master 368b559. One of a coordinated 7-PR set fixing parser/reachability bugs found by the OpenAnt finder. File-disjoint from the other 6 PRs (no merge collision; any order).

Addresses 11 finder bug-ids (11 distinct fixes; 0 ride a same-PR canonical).

Bugs fixed

  • [1] ruby-parenless-call (ruby/masking_floor) — genuinely-new (no prior logged entry)
  • [6] rb-nested-extraction (ruby/extraction_gap) — genuinely-new (no prior logged entry)
  • [8] rb-crossfile-class-overresolve (ruby/wrong_edge) — genuinely-new (no prior logged entry)
  • [11] rb-builtin-render (ruby/masking_floor) — genuinely-new (no prior logged entry)
  • [18] ruby-metadata-134-singleton (ruby/metadata_correctness) — genuinely-new (no prior logged entry)
  • [24] ruby-extraction_gap-304-definemethod (ruby/extraction_gap) — Fixes BUG-089 (previously logged; was fixed only on an unmerged branch, still live on master 368b559)
  • [31] ruby-dataflow_loss-228-methodobj (ruby/dataflow_loss) — genuinely-new (no prior logged entry)
  • [42] ruby-extraction_gap-304-alias (ruby/extraction_gap) — Fixes BUG-094 (previously logged; was fixed only on an unmerged branch, still live on master 368b559)
  • [44] ruby-unit_metadata-153-private (ruby/unit_metadata_correctness) — genuinely-new (no prior logged entry)
  • [49] ruby-substring_import_overmatch-252 (ruby/substring_import_overmatch) — genuinely-new (no prior logged entry)
  • [50] ruby-metadata-278-nestedclass (ruby/metadata_correctness) — genuinely-new (no prior logged entry)

Dedup status (independent + judge, from raw)

9 genuinely-new · 2 duplicate-of-curated (cross-ref above) · 0 covered-by-curated · 0 intra-PR-duplicate. All re-confirmed STILL PRESENT on pristine master 368b559 (git show 368b559:).

Tests

Verified GREEN in isolation off pristine 368b559: 20 passed (tests/parsers/ruby/). New per-bug regression tests. (No test_<lang>_schema_completeness.py / test_callgraph_symmetry.py parser-infra in this PR — a follow-up; master has none either.)

Notes

  • TDD per bug (RED→GREEN); independent + judge verified each fix from raw against master.
  • No behavior change outside the listed parser(s).

🤖 Generated with Claude Code

gadievron and others added 3 commits June 9, 2026 23:31
…/builtin/method-object/substring-import (BUG-NEW 1,8,11,31,49)

Local-only finder-fixes-54 (base master 368b559). TDD; 10 tests in the new
tests/parsers/ruby/test_call_graph_builder_u*.py. Judge (vs prepared
recommendation, independent re-derivation from raw): AGREE / SHIP-AS-IS.
CM-B builtin pre-check scoped SAME-FILE (judge-confirmed: no global cross-file
fallback; genuine-builtin non-link pinned by a negative test). Combined parser
suite: 70 passed, 10 skipped.

Local-only; not pushed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

(cherry picked from commit 74153f98a94f9e8b95c39083d3d0eaf71ea7956e)
…ethod/alias/private/nested-class (BUG-NEW 6,18,24,42,44,50)

Local-only finder-fixes-54. 8 tests.
recurse method bodies; is_singleton before initialize; define_method(:sym) registers sym
[24] and alias node registers name [42] (DISTINCT AST nodes, judge-confirmed); private/
public/protected keyword-state visibility model [44]; compose Outer::Inner [50].
Judge: AGREE / SHIP-AS-IS.
Local-only; not pushed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

(cherry picked from commit 825c92d71c686234828215102da60eb584e0de7b)
…ding (BUG-NEW 31)

Ruby hunk of the alias-guard (python hunk ships in the python PR). Local-only; not pushed.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gadievron

Copy link
Copy Markdown
Collaborator Author

Merge-order note (not a defect — flagging for landing order)

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