[release/9.0-preview7] Fix throwing exception when calling RunClassConstructor on a generic type with a static constructor #105535
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.
Backport of #105513 to release/9.0-preview7
/cc @steveisok
Customer Impact
Customers who use
RuntimeHelpers.RunClassConstructor
on a generic type with a static constructor are currently getting an exception because the runtime was no longer assuming it was already initialized.First reported in #103891, but also failed app compat testing in https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2106458. DevExpress also indicated they were hitting this with their WPF controls.
Regression
#99183 introduced the regression.
Testing
A test was added to invoke the static constructor on a generic type and it did not throw an exception.
Risk
Low - this is a targeted fix
IMPORTANT: If this backport is for a servicing release, please verify that:
The PR target branch is
release/X.0-staging
, notrelease/X.0
.If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.