Skip to content

Add polyfills and centralize null checks#489

Merged
glennawatson merged 5 commits into
mainfrom
UpdateReactiveUI
May 23, 2026
Merged

Add polyfills and centralize null checks#489
glennawatson merged 5 commits into
mainfrom
UpdateReactiveUI

Conversation

@ChrisPulman

Copy link
Copy Markdown
Member

What kind of change does this PR introduce?

Update

What is the new behavior?

Introduce argument validation helper and multiple polyfills to improve compatibility across .NET targets.

Added ArgumentExceptionHelper to centralize ThrowIfNull/ThrowIfNullOrEmpty usage and replaced platform-specific guards in FusilladeSplatBuilderExtensions, NetCache, RateLimitedHttpMessageHandler, and other places to use the helper.

Add polyfill types (CallerArgumentExpressionAttribute, HashCode for .NET Framework, IsExternalInit, NotNullAttribute, RequiresDynamicCodeAttribute, RequiresUnreferencedCodeAttribute) under src/Fusillade/Polyfills to provide missing APIs on older runtimes or forward to framework types when available.

Also update copyright headers and stylecop.json copyright range to 2016 - 2026.

Use ArgumentNullException.ThrowIfNull on .NET 8 builds while keeping explicit null-checks for older frameworks across FusilladeSplatBuilderExtensions, NetCache, and RateLimitedHttpMessageHandler to standardize parameter validation. Bump ReactiveUI and ReactiveUI.Testing to 23.1.1 and adjust a test to use RxSchedulers.TaskpoolScheduler (HttpSchedulerSharedTests). Modified files: Directory.Packages.props, Fusillade.Tests/Http/HttpSchedulerSharedTests.cs, Fusillade/Builder/FusilladeSplatBuilderExtensions.cs, Fusillade/NetCache.cs, Fusillade/RateLimitedHttpMessageHandler.cs.
Introduce argument validation helper and multiple polyfills to improve compatibility across .NET targets. Added ArgumentExceptionHelper to centralize ThrowIfNull/ThrowIfNullOrEmpty usage and replaced platform-specific guards in FusilladeSplatBuilderExtensions, NetCache, RateLimitedHttpMessageHandler, and other places to use the helper. Add polyfill types (CallerArgumentExpressionAttribute, HashCode for .NET Framework, IsExternalInit, NotNullAttribute, RequiresDynamicCodeAttribute, RequiresUnreferencedCodeAttribute) under src/Fusillade/Polyfills to provide missing APIs on older runtimes or forward to framework types when available. Also update copyright headers and stylecop.json copyright range to 2016 - 2026.
@glennawatson glennawatson merged commit 9c802c7 into main May 23, 2026
4 checks passed
@glennawatson glennawatson deleted the UpdateReactiveUI branch May 23, 2026 10:37
@github-actions

github-actions Bot commented Jun 7, 2026

Copy link
Copy Markdown

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Jun 7, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants