-
Notifications
You must be signed in to change notification settings - Fork 803
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 16105 - Release inline optimization leads to MethodAccessException if used with assembly:InternalsVisibleTo attribute #16737
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
❗ Release notes required
|
aa1ae99
to
889f828
Compare
psfinaki
approved these changes
Feb 21, 2024
358a2c9
to
839812a
Compare
839812a
to
2f762d3
Compare
vzarytovskii
approved these changes
Feb 26, 2024
/azp run |
Azure Pipelines successfully started running 2 pipeline(s). |
psfinaki
pushed a commit
that referenced
this pull request
Feb 28, 2024
* Fix 16105 - Release inline optimization leads to MethodAccessException if used with assembly:InternalsVisibleTo attribute (#16737) * Fix16105 * trimming * Update release notes --------- Co-authored-by: Vlad Zarytovskii <vzaritovsky@hotmail.com> * fix wrong range start of INTERP_STRING_END (#16774) * fix wrong range start of INTERP_STRING_END * add release notes entry --------- Co-authored-by: Adam Boniecki <20281641+abonie@users.noreply.github.com> * Update dependencies from https://github.com/dotnet/arcade build 20240223.1 (#16776) Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.24113.2 -> To Version 8.0.0-beta.24123.1 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Kevin Ransom (msft) <codecutter@hotmail.com> * remove superseded test of TryGetRecentCheckResultsForFile (#16770) * remove superseded test of TryGetRecentCheckResultsForFile * kick CI * Allow e2e tests to fail for now * Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20240227.2 (#16777) Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 9.0.0-alpha.1.24123.3 -> To Version 9.0.0-alpha.1.24127.2 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> --------- Co-authored-by: Kevin Ransom (msft) <codecutter@hotmail.com> Co-authored-by: Vlad Zarytovskii <vzaritovsky@hotmail.com> Co-authored-by: dawe <dawedawe@posteo.de> Co-authored-by: Adam Boniecki <20281641+abonie@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #16105
When doing cross assembly optimisation, the FSharp optimiser incorrectly inlines function calls from a second assembly that contain internal method calls to a third assembly assembly, with internals visible to.
The fix is to spot that the method call to an internal member in an external assembly is about to happen, and to not inline it.
This adds a couple of test cases, one for calling an internal Api with friends visible to. Also one calling a public member to ensure inlining still happens properly.
Also renames and moves a few test cases to ensure that when testing, file paths doesn't spill over the max path length.