-
Notifications
You must be signed in to change notification settings - Fork 5.1k
[release/9.0-staging] Fix ordering issue in interface trimming #114509
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
base: release/9.0-staging
Are you sure you want to change the base?
[release/9.0-staging] Fix ordering issue in interface trimming #114509
Conversation
Tagging subscribers to this area: @dotnet/illink |
Friendly reminder that code complete for the may release is next Monday April 14th. If you want this change included in that release, please take it to Tactics and merge the PR before EOD Monday. |
@sbomer friendly reminder that code complete is on Monday May 12th (2:00 PM Pacific) for the June Release. If you'd like to get this change included in that release, please get a Tactics approval and merge this PR before the deadline. |
@sbomer reminder that servicing code complete for 9.0.7 is today @ 3PM PST. |
Marking this approved since it was approved over email. |
Backport of #110098 to release/9.0-staging
ProcessMarkedTypesWithInterfaces can lead to additional interface methods being required, so those need to be marked (done by ProcessInterfaceMethods) even if nothing else happens to put new items in the queue.
/cc @sbomer
Customer Impact
Reported in #109850. Upon upgrade to .NET 9, application fails with
TypeLoadException
.Regression
Regressed in .NET 9 which had substantial changes to the interface trimming logic.
Testing
Validated it fixes the customer-reported issue locally, and the fix has been in .NET 10 since April. Coming up with a small testcase was nontrivial due to the order dependence - given the scope of the change I believe manual validation is sufficient.
Risk
Low. The fix just ensures that we finish processing interface methods, but doesn't change any of the processing logic.