Skip to content

fix(go): preserve generic receiver method ownership - #833

Open
merlincat11 wants to merge 2 commits into
tirth8205:mainfrom
merlincat11:agent/fix-832-go-generic-receivers
Open

fix(go): preserve generic receiver method ownership#833
merlincat11 wants to merge 2 commits into
tirth8205:mainfrom
merlincat11:agent/fix-832-go-generic-receivers

Conversation

@merlincat11

Copy link
Copy Markdown

Summary

Fixes #832.

Go methods declared on generic receiver types were emitted as top-level
functions because the receiver parser did not unwrap generic_type nodes.
The fix unwraps generic and pointer receiver nodes to their base type
identifier, preserving method ownership for both T[P] and *T[P] receivers.

Validation

  • uv run --extra dev pytest -q — 2399 passed, 5 skipped, 2 xpassed
  • uv run --extra dev ruff check code_review_graph/parser.py tests/test_multilang.py
  • Validated against Terraform's internal/addrs/graph.go: all 11
    DirectedGraph[T] methods now have parent_name='DirectedGraph'.

Repository-wide Ruff still reports unrelated pre-existing violations in other
test files.

@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown

code-review-graph review

Overall risk: 0.30 (LOW) — 4 changed function(s)/class(es), 0 affected flow(s), 2 test gap(s)

Risk-scored changes

Risk Level Symbol Location Tested
0.30 low code_review_graph/parser.py::CodeParser code_review_graph/parser.py:2403 yes
0.25 low code_review_graph/parser.py::CodeParser._get_go_receiver_type code_review_graph/parser.py:14696 no
0.05 low tests/test_multilang.py::TestGoParsing tests/test_multilang.py:12 no
0.05 low tests/test_multilang.py::TestGoParsing.test_generic_methods_attached_to_receiver tests/test_multilang.py:85 (test)

Test gaps

  • code_review_graph/parser.py::CodeParser._get_go_receiver_type (code_review_graph/parser.py:14696)
  • tests/test_multilang.py::TestGoParsing (tests/test_multilang.py:12)

Token savings: this graph-backed report used ~204,014 fewer tokens (~100%) than reading every changed file in full (estimated, chars/4 approximation).


Powered by code-review-graph — local-first analysis; no code leaves the CI runner.

@merlincat11
merlincat11 marked this pull request as ready for review August 8, 2026 03:01
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.

[Bug]: (go) generic receiver lose their type

2 participants