Skip to content

Fix resolution-aware C# common-call filtering - #4965

Merged
Widthdom merged 4 commits into
mainfrom
fix-issue4867
Jul 29, 2026
Merged

Fix resolution-aware C# common-call filtering#4965
Widthdom merged 4 commits into
mainfrom
fix-issue4867

Conversation

@Widthdom

@Widthdom Widthdom commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • Preserve qualified C# common-member calls during extraction instead of discarding them before resolution.
  • Suppress only unresolved qualified common-call noise in bare-name references, callers, callees, and hotspot defaults, while retaining resolved edges and allowing explicit completeness opt-ins through CLI and MCP.
  • Keep complex and null-conditional receivers out of global fallback resolution, refresh unchanged version-7 C# indexes under extractor contract version 8, and refresh hotspot aggregates when incremental graph resolution changes.
  • Preserve compatibility for legacy read-only indexes that do not have the new resolution-evidence columns.

Validation

  • dotnet build CodeIndex.sln -c Release --no-restore -p:UseSharedCompilation=false — succeeded with 0 warnings and 0 errors.
  • Issue Make qualified C# calls receiver-aware instead of suppressing them by common name #4867 focused tests — 3/3 passed on both net8.0 and net9.0.
  • Reference-graph and deferred-hotspot regression tests — 16/16 passed on net8.0.
  • Prepared-command cache tests — 37/37 passed on net8.0.
  • dotnet run --project tools/CodeIndex.Changelog -- check — validated all 41 current fragments after merging the latest origin/main.
  • Local repository index refresh and status --check --json after the final upstream merge — workspace matched, graph/index complete, and reference cap hits were 0.

Documentation and changelog

  • Updated USER_GUIDE.md, DEVELOPER_GUIDE.md, and TESTING_GUIDE.md in English and Japanese sections as applicable.
  • Added changelog.d/unreleased/4867.fixed.md.

Adversarial review

  • Completed the workflow maximum of two Codex adversarial-review rounds.
  • Addressed all actionable findings: extractor contract upgrade, legacy read-only compatibility, case-insensitive filtering, complex receiver qualification, partial-query filtering, and incremental hotspot refresh.

Follow-up candidates

  • None.

Fixes #4867

@Widthdom
Widthdom marked this pull request as ready for review July 29, 2026 01:33
@Widthdom
Widthdom merged commit 1ff2668 into main Jul 29, 2026
12 checks passed
@Widthdom
Widthdom deleted the fix-issue4867 branch July 29, 2026 01:33
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.

Make qualified C# calls receiver-aware instead of suppressing them by common name

1 participant