[release/10.0] Fix ComInterfaceGenerator collision on same-named methods in disjoint cross-assembly bases#129473
Draft
Copilot wants to merge 2 commits into
Draft
Conversation
Co-authored-by: AaronRobinsonMSFT <30635565+AaronRobinsonMSFT@users.noreply.github.com>
Co-authored-by: AaronRobinsonMSFT <30635565+AaronRobinsonMSFT@users.noreply.github.com>
Copilot created this pull request from a session on behalf of
AaronRobinsonMSFT
June 16, 2026 17:12
View session
Contributor
|
Tagging subscribers to this area: @dotnet/interop-contrib |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
main PR AaronRobinsonMSFT@55aa5e6
Addresses #122708 in .NET 10.
Description
Cross-assembly
[GeneratedComInterface]inheritance could fail generation when disjoint external bases each exposed a same-named method (customer repro:MyMethod), producing CS8785 from aComMethodInfodictionary key collision. This PR ports the servicing-safe dedup fix forrelease/10.0and adds targeted regression coverage.ExternalSymbolIdtoComMethodInfoso externally-defined methods (Syntax == null) have stable per-symbol identity in record equality/hash.GetDocumentationCommentId()with fully-qualified fallback.ComInterfaceGenerator.Tests.Customer Impact
Without this fix, valid cross-assembly COM interface hierarchies fail to compile under source generation, blocking .NET 10 migration scenarios reported by enterprise customers (Synopsys).
Regression
No. This is a latent key-collision bug in external-interface handling, surfaced by specific same-name cross-assembly method shapes.
Testing
ComMethodInfokey).ComInterfaceGenerator.Tests(with standard failing/ignore/outerloop exclusions); new tests and suite pass.Risk
Low. Change is surgical and confined to generator-internal key identity for externally-defined methods; no public API, generated source contract, or runtime behavior changes.