Add DynamicallyAccessedMembers attributes to UIsInstT methods in variance tests #121833
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 Issue
main PR
Description
Added
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)]attribute to theUtype parameter in theUIsInstT<T,U>method across six variance test files (IsInst001.cs through IsInst006.cs) undersrc/tests/Loader/classloader/generics/Variance/IL.This annotation is required because the method calls
Activator.CreateInstance(typeof(U)), which needs the type to have a public parameterless constructor. Without this attribute, the trimmer removes the constructor when building withTrimMode=full, causing test failures.Also added the required
using System.Diagnostics.CodeAnalysis;namespace to all six files.Customer Impact
Ensures proper test coverage for trimming scenarios. Without these attributes, variance tests would fail when built with TrimMode=full, reducing our confidence in the trimming behavior of variance-related functionality.
Regression
Not applicable - this is new work for trimming compatibility to enable building the test tree with TrimMode=full.
Testing
UnboxUToTInternalmethodsRisk
Low - changes only add trimming annotations to test code without altering test logic or functionality.
Package authoring no longer needed in .NET 9
IMPORTANT: Starting with .NET 9, you no longer need to edit a NuGet package's csproj to enable building and bump the version.
Keep in mind that we still need package authoring in .NET 8 and older versions.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.