Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/8.0-staging] Fix polluted CompareState when comparing element types in a signature #98249

Merged
merged 1 commit into from
Feb 12, 2024

Conversation

elinor-fung
Copy link
Member

@elinor-fung elinor-fung commented Feb 9, 2024

Backport of #98198 to release/8.0-staging

We were propagating state from each type in the method signature to the comparisons for the next type. This resulted in type equivalence checks being disabled for any parameters that came after a generic parameter.

Customer Impact

  • Customer reported
  • Found internally

Fixes #96268

MissingMethodException would be thrown when trying to call a method that had a generic parameter or return value followed by a parameter that relied on type equivalence and came from different assemblies. Interop types are the very common use case here. There is no workaround other than reverting to 7.0 or rewriting method signatures to not have generic parameters or move them after any type that uses type equivalence.

Regression

  • Yes
  • No

This is a regression between 7.0 and 8.0.

Testing

Automated test added. Manual test of repros provided by customers.

Risk

Low

We were propagating state from each type in the method signature to the
comparisons for the next type. This resulted in type equivalence checks
being disabled for any parameters that came after a generic parameter.
@elinor-fung elinor-fung added Servicing-consider Issue for next servicing release review area-VM-coreclr labels Feb 9, 2024
@elinor-fung elinor-fung added this to the 8.0.x milestone Feb 9, 2024
@ghost ghost assigned elinor-fung Feb 9, 2024
@elinor-fung elinor-fung linked an issue Feb 9, 2024 that may be closed by this pull request
Copy link
Member

@jeffschwMSFT jeffschwMSFT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approved. we will take for consideration in 8.0.x

@jeffschwMSFT jeffschwMSFT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Feb 12, 2024
@jeffschwMSFT jeffschwMSFT modified the milestones: 8.0.x, 8.0.3 Feb 12, 2024
@jeffschwMSFT jeffschwMSFT merged commit 6dec8dd into dotnet:release/8.0-staging Feb 12, 2024
121 of 127 checks passed
@elinor-fung elinor-fung deleted the fix96268-rel8 branch February 12, 2024 18:05
@github-actions github-actions bot locked and limited conversation to collaborators Mar 14, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-VM-coreclr Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

MethodNotFoundException in net8
3 participants