Repository navigation
Closed
Milestone
Description
Describe the bug
When trying to use Squash with TimeZoneConverter which uses Polyfill, I got linker errors for Polyfill.GetMemberWithSameMetadataDefinitionAs:
polyfill\11.4.4\contentFiles\cs\netstandard2.0\Polyfill_Type.cs(122,24): Trim analysis error IL2070: Polyfills.Polyfill.GetMemberWithSameMetadataDefinitionAs(Type, MemberInfo): 'this' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicConstructors', 'DynamicallyAccessedMemberTypes.NonPublicConstructors', 'DynamicallyAccessedMemberTypes.PublicMethods', 'DynamicallyAccessedMemberTypes.NonPublicMethods', 'DynamicallyAccessedMemberTypes.PublicFields', 'DynamicallyAccessedMemberTypes.NonPublicFields', 'DynamicallyAccessedMemberTypes.PublicNestedTypes', 'DynamicallyAccessedMemberTypes.NonPublicNestedTypes', 'DynamicallyAccessedMemberTypes.PublicProperties', 'DynamicallyAccessedMemberTypes.NonPublicProperties', 'DynamicallyAccessedMemberTypes.PublicEvents', 'DynamicallyAccessedMemberTypes.NonPublicEvents' in call to 'System.Type.GetMembers(BindingFlags)'. The parameter 'type' of method 'Polyfills.Polyfill.GetMemberWithSameMetadataDefinitionAs(Type, MemberInfo)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
polyfill\11.4.4\contentFiles\cs\net462\Polyfill_Type.cs(122,24): Trim analysis error IL2070: Polyfills.Polyfill.GetMemberWithSameMetadataDefinitionAs(Type, MemberInfo): 'this' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicConstructors', 'DynamicallyAccessedMemberTypes.NonPublicConstructors', 'DynamicallyAccessedMemberTypes.PublicMethods', 'DynamicallyAccessedMemberTypes.NonPublicMethods', 'DynamicallyAccessedMemberTypes.PublicFields', 'DynamicallyAccessedMemberTypes.NonPublicFields', 'DynamicallyAccessedMemberTypes.PublicNestedTypes', 'DynamicallyAccessedMemberTypes.NonPublicNestedTypes', 'DynamicallyAccessedMemberTypes.PublicProperties', 'DynamicallyAccessedMemberTypes.NonPublicProperties', 'DynamicallyAccessedMemberTypes.PublicEvents', 'DynamicallyAccessedMemberTypes.NonPublicEvents' in call to 'System.Type.GetMembers(BindingFlags)'. The parameter 'type' of method 'Polyfills.Polyfill.GetMemberWithSameMetadataDefinitionAs(Type, MemberInfo)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
Minimal Repro
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Polyfill" Version="11.4.4" PrivateAssets="all" />
<PackageReference Include="Squash" Version="2.1.0" PrivateAssets="all" />
</ItemGroup>
</Project>using System;
public static class Program
{
public static void Main(string[] args)
{
Console.WriteLine(typeof(Program).GetMemberWithSameMetadataDefinitionAs(null));
}
}Running dotnet build -c Release gives
GetMemberWithSameMetadataDefinitionAs netstandard2.0 succeeded with 1 warning(s) (0,8s) → GetMemberWithSameMetadataDefinitionAs\bin\Release\netstandard2.0\GetMemberWithSameMetadataDefinitionAs.dll
polyfill\11.4.4\contentFiles\cs\netstandard2.0\Polyfill_Type.cs(122,24): Trim analysis warning IL2070: Polyfills.Polyfill.GetMemberWithSameMetadataDefinitionAs(Type, MemberInfo): 'this' argument does not satisfy 'DynamicallyAccessedMemberTypes.PublicConstructors', 'DynamicallyAccessedMemberTypes.NonPublicConstructors', 'DynamicallyAccessedMemberTypes.PublicMethods', 'DynamicallyAccessedMemberTypes.NonPublicMethods', 'DynamicallyAccessedMemberTypes.PublicFields', 'DynamicallyAccessedMemberTypes.NonPublicFields', 'DynamicallyAccessedMemberTypes.PublicNestedTypes', 'DynamicallyAccessedMemberTypes.NonPublicNestedTypes', 'DynamicallyAccessedMemberTypes.PublicProperties', 'DynamicallyAccessedMemberTypes.NonPublicProperties', 'DynamicallyAccessedMemberTypes.PublicEvents', 'DynamicallyAccessedMemberTypes.NonPublicEvents' in call to 'System.Type.GetMembers(BindingFlags)'. The parameter 'type' of method 'Polyfills.Polyfill.GetMemberWithSameMetadataDefinitionAs(Type, MemberInfo)' does not have matching annotations. The source value must declare at least the same requirements as those declared on the target location it is assigned to.
Submit a PR that fixes the bug
I'm unsure whether this is a bug or a limitation in Polyfill, so I don't have any (partial) work to show.
Metadata
Metadata
Assignees
Labels
No labels
Activity
SimonCropp commentedon Oct 12, 2026
Fix in #723
Suppress IL2070 on GetMemberWithSameMetadataDefinitionAs (#723)
jnyrup commentedon Oct 13, 2026
Thanks!