Skip to content

Fix C# polymorphic impact traversal - #2610

Merged
Widthdom merged 3 commits into
mainfrom
fix-issue2060
May 24, 2026
Merged

Fix C# polymorphic impact traversal#2610
Widthdom merged 3 commits into
mainfrom
fix-issue2060

Conversation

@Widthdom

Copy link
Copy Markdown
Owner

Summary

  • Expand C# impact traversal so concrete implementation queries also match calls recorded against inherited abstract/interface method targets.
  • Include implemented interfaces when walking C# containing type inheritance.
  • Add regression coverage for interface dispatch, abstract base dispatch, same-name hierarchy false positives, and duplicate short type names.

Validation

  • dotnet build
  • dotnet test tests/CodeIndex.Tests/CodeIndex.Tests.csproj --filter "FullyQualifiedName~DbReaderTests.GetTransitiveCallers_CSharpExact_MapsInterfaceDispatchToConcreteImplementation|FullyQualifiedName~DbReaderTests.GetTransitiveCallers_CSharpExact_FollowsAbstractBaseDispatchToConcreteOverride|FullyQualifiedName~DbReaderTests.GetTransitiveCallers_CSharpExact_DoesNotMixUnrelatedSameNameHierarchies|FullyQualifiedName~DbReaderTests.GetTransitiveCallers_CSharpExact_DoesNotUseBaseListFromDuplicateShortTypeName"
  • Adversarial review: two actionable findings found and addressed.

Documentation and Changelog

  • Added changelog.d/unreleased/2060.fixed.md.
  • No README/guide updates were needed because this fixes existing graph traversal behavior without changing CLI flags or documented command contracts.

Fixes #2060

Follow-up Candidates

  • None.

@Widthdom
Widthdom marked this pull request as ready for review May 24, 2026 10:45
@Widthdom
Widthdom merged commit 7cc553b into main May 24, 2026
10 checks passed
@Widthdom
Widthdom deleted the fix-issue2060 branch May 24, 2026 10:45
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.

Indirect references through interface/abstract base classes lack polymorphic resolution

1 participant