feat(cpp): disambiguate template specializations in class graph IDs and receiver routing#1587
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
CI Report✅ All checks passed Pipeline Status
Test Results
✅ All 8984 tests passed 1 test(s) skipped — expand for details
Code CoverageTests
📋 View full run · Generated by CI |
|
@copilot review inline comments from github-actions and fix them! |
Addressed the actionable github-actions inline comments in commit
|
|
Claude finished @magyargergo's task in 9m 16s —— View job Second-Pass Production-Readiness Review — PR #1587
|
@copilot address these findings and act as a senior c++ static analysis engineer and ISO c++ compiler engineer and follow DoD.md file. |
... Addressed in Implemented:
Validation rerun: |
…nd receiver routing (abhigyanpatwari#1587) * Initial plan * fix(cpp): disambiguate template specializations in class graph IDs Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/c929edb2-f2e9-41c6-a2e9-2092b967f603 * fix(cpp): guard template-specialization class lookup fallback Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/c929edb2-f2e9-41c6-a2e9-2092b967f603 * fix(cpp): address github-actions inline review findings Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/68d8fbac-4ff4-47f7-b732-eaf2c2f94043 * fix(cpp): cover template-type receiver binding for specialization routing Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/9505dfcd-3fb6-4bc2-a134-f60fe0dc8cd9 * chore(cpp): clarify specialization-binding fallback assumptions Agent-Logs-Url: https://github.com/abhigyanpatwari/GitNexus/sessions/9505dfcd-3fb6-4bc2-a134-f60fe0dc8cd9 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Gergő Magyar <gergomagyar@icloud.com>

C++ template specializations were being collapsed to a single class identity (
List<User>andList<Order>both treated asList), which made member ownership andCALLStargets ambiguous. This change introduces specialization-aware class identity so receiver-bound resolution can route to the correct specialization.Graph identity: add specialization fingerprinting for class-like symbols
templateArguments.~arg1,arg2,...) for class-like nodes when template args are present.parameterTypes).C++ capture + extraction: preserve specialization arguments
templateArgumentsflow into graph nodes and symbol definitions.Receiver-bound routing: specialization-aware class binding fallback
List<User>→ class def withtemplateArguments=['User']), with guarded qualified-name fallback behavior.Integration coverage: cross-file specialization-specific dispatch
List<User>/List<Order>behaviors.