The Wire · Showcase
RUNTIME STRIPS DEAD CODE, FIXES TRIMMER DATAFLOW BUGS ACROSS CODEPATH
By RepoJournal · Filed · About .NET
CoreCLR interop stubs lose obsolete target tagging while trimmer gains null-safety guards in generic-attribute processing, unblocking three years of accumulated simplification work.
The runtime shed technical debt across three fronts overnight. First, EgorBo restored stress guards on process-isolated IL tests [1], surfacing a regression where test-skip attributes silently dropped when isolation was enabled. Second, Copilot's agent removed ClassSupportsIClassX [2], a stub that unconditionally returned true and made all its call sites dead code or no-ops. Third, the same agent eliminated calli target tagging from interop stubs [3], simplifying MethodDesc and unmanaged target handling to use actual storage semantics instead of low-bit encoding tricks. On the configuration side, a generic-attribute dataflow fix [4] guards ProcessGenericArgumentDataFlow with RequiresGenericArgumentDataFlow and adds null-safety checks to prevent NREs while emitting IL2091, while a separate fix [5] restores dropped collection items when binding configuration to positional records with null constructor parameters. This was a regression in .NET 10 where PR #116677 changed JSON null handling and exposed a latent issue in BindParameter. ASP.NET forced brace-expansion to 5.0.8 [6] to fix DoS vulnerabilities affecting unbounded expansion output and exponential CPU consumption on crafted patterns, cascading through npm's dependency graph via minimatch, glob, and rimraf. BenchmarkDotNet's error mapper now converts missing references into user-actionable messages [7] and memoizes IInProcessDiagnoser.GetHandlerData per BenchmarkCase to reduce redundant calls.
One email a day. Unsubscribe in one click.
Keep up with .NET in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Review process-isolated IL tests in your suite for stress-guard coverage dotnet/runtime [plan]
- → Upgrade ASP.NET projects with npm dependencies; brace-expansion DoS fix requires major version bump dotnet/aspnetcore [plan]
- → Test configuration binding with null constructor parameters in positional records before next release dotnet/runtime [monitor]
References
- [1] Restore stress guards on process-isolated IL tests (#131769) dotnet/runtime
- [2] Remove ClassSupportsIClassX which always returns true (#131683) dotnet/runtime
- [3] Remove calli target tagging from CoreCLR interop stubs (#131642) dotnet/runtime
- [4] Fix custom-attribute generic argument dataflow in the trimmer ↗ dotnet/runtime
- [5] Fix configuration binder dropping collection items with null constructor parameters ↗ dotnet/runtime
- [6] [Infrastructure] Updated npm packages 2026-07-29 ↗ dotnet/aspnetcore
- [7] Update `MsBuildErrorMapper` ↗ dotnet/BenchmarkDotNet