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

Fix sealing of types that were not concretely instantiated #73218

Merged
merged 2 commits into from
Aug 2, 2022

Conversation

MichalStrehovsky
Copy link
Member

@MichalStrehovsky MichalStrehovsky commented Aug 2, 2022

Fixes #73076.

Because of the generic interface method use, the compiler didn't generate a concrete instantiation of one of the generic types anywhere and we were incorrectly sealing it, causing a bad devirtualization.

The fix is to look at template type instantiations too.

I'm also adding an unrelated regression test for scenarios I fixed in #64497. We could push the regression test through that PR but I've only edited the branch through GitHub UI and this is easier...

Cc @dotnet/ilc-contrib

Copy link
Member

@jkotas jkotas left a comment

Choose a reason for hiding this comment

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

Thanks

@MichalStrehovsky MichalStrehovsky merged commit a2a5668 into dotnet:main Aug 2, 2022
@MichalStrehovsky MichalStrehovsky deleted the fix73076 branch August 2, 2022 23:17
@EgorBo EgorBo mentioned this pull request Aug 12, 2022
2 tasks
@ghost ghost locked as resolved and limited conversation to collaborators Sep 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

AOT Release shared library does not respect override methods
2 participants