feat(cpp): Enable C++ ADL for class pointer arguments and exclude function pointers#1592
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @magyargergo's task in 6m 56s —— View job Production Readiness Review — PR #1592
|
@copilot address these findings and act as a senior c++ static analysis tool engineer and iso c++ compiler expert and follow DoD.md |
Addressed in 1897a2f. The function-pointer guard now breaks out of the declarator walk instead of returning from the whole scope scan, so earlier |
CI Report✅ All checks passed Pipeline Status
Test Results
✅ All 9034 tests passed 1 test(s) skipped — expand for details
Code CoverageTests
📋 View full run · Generated by CI |
…ction pointers (abhigyanpatwari#1592) * Initial plan * fix: unwrap cpp adl pointer argument types Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/2e9c8549-e062-410c-9ce3-66ba0a181590 * chore: tighten cpp adl function-pointer guard Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/2e9c8549-e062-410c-9ce3-66ba0a181590 * docs: clarify cpp adl implementation comments Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/2e9c8549-e062-410c-9ce3-66ba0a181590 * fix: avoid aborting cpp adl declaration scan Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/e54f1d4b-9aac-407c-9b5e-b5f3ea0534ea --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Gergő Magyar <gergomagyar@icloud.com>

C++ ADL was skipping pointer-typed class arguments entirely, so calls like
record(p)wherepisN::S*orN::S**failed to associateN. This change extends the current ADL capture/resolution path to unwrap class pointers while keeping function-pointer arguments out of ADL.ADL candidate selection
Capture-time type classification
pointer_declaratorchain as pointer participation for ADL (N::S*,N::S**, etc.)void (*)()does not surface a false associated class from the return typeFixture coverage
void (*g)()N::S**Behavioral example