[release/8.0] Fix LDTOKEN of methods that have modifiers #91439
Merged
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 #91382 to release/8.0
/cc @MichalStrehovsky
Customer Impact
This was a customer reported regression from 7.0 reported at #91065. LINQ expression trees referencing methods that have custom modifiers in the signature would not work.
Testing
All of our NativeAOT testing. Verified the customer app is fixed with this.
Risk
Low, this is a low risk fix specifically for 8.0 (ignore custom modifiers to restore 7.0 behavior).
We'll need a more comprehensive fix to be able to distinguish corner cases (that were already broken in 7.0 but people are very unlikely to hit because they'd need a class with two methods where the signature of the methods only differ in modifiers - AFAIK this is only reachable with C# if one has two methods that take function pointers as parameters and they differ only in calling conventions).
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.