Repository navigation
Preserve Hot Reload deletion-marker forwarder in trimmed Loader tests - #136927
Open
radekdoulik wants to merge 1 commit into
Open
radekdoulik wants to merge 1 commit into
radekdoulik wants to merge 1 commit into
Conversation
Root the delta-only MetadataUpdateDeletedAttribute reference through System.Runtime.Loader so aggressive trimming preserves its type forwarder. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Azure Pipelines: Successfully started running 3 pipeline(s). 12 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
|
Tagging subscribers to this area: @dotnet/area-infrastructure-libraries |
jkotas
reviewed
Nov 3, 2026
| <assembly fullname="ReferencedClassLib" /> | ||
| <assembly fullname="ReferencedClassLibNeutralIsSatellite" /> | ||
| <assembly fullname="System.Runtime.Loader"> | ||
| <!-- Keep the forwarder referenced only by hot reload deltas. --> |
Member
There was a problem hiding this comment.
Is the problem that we are running the trimmer on hot reload deltas?
I do not think it makes sense - trimming and hot reload don't mix.
This branch has not been deployed
This file contains hidden or 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
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.
Summary
Preserve the
MetadataUpdateDeletedAttributeforwarder in the Loader tests' existing linker descriptor.DeleteMemberTestapplies a metadata delta that references the attribute throughSystem.Runtime.Loader. Aggressive trimming removes that facade's forwarder, although the attribute definition remains in CoreLib. Reflection then throwsTypeLoadExceptionwhen filtering deleted members. The single-type root preserves the missing forwarding metadata without disabling trimming, changing R2R mode, copying whole assemblies, or skipping tests.This addresses the managed test failure after successful full-library R2R publishing in build 1661603. It is separate from the already-merged build-serialization repair.
Validation
Reused the existing macOS/arm64-hosted browser/CoreCLR Release baseline. The commands below omit only the diagnostic
/bl:output-file paths.Focused regression command, run before and after the descriptor change:
Complete CI-selected Loader suite:
Passed, exit 0: 71 total, 49 passed, 0 failed, 22 skipped. This uses the existing CI category exclusions, with no method/class filter. XML comparison confirms the same 71 test names and 22 skipped identities as the CI result; only
DeleteMemberTestchanges from Fail to Pass. Both successful builds report 0 warnings/errors.Metadata inspection confirms the marker forwarder is missing from the original published WebCIL facade and present after the fix. The fixture and delta remain byte-identical; the published CoreLib asset matches the R2R compiler output.
No patched Linux CI, full-library, Mono, or mobile run was performed. No runtime or public API code is changed.
Note
This PR was prepared with GitHub Copilot.