Skip to content

fix: resolve solution analyzer diagnostics - #310

Merged
ChrisPulman merged 2 commits into
mainfrom
CP_resolve-build-diagnostics
Jul 28, 2026
Merged

fix: resolve solution analyzer diagnostics#310
ChrisPulman merged 2 commits into
mainfrom
CP_resolve-build-diagnostics

Conversation

@ChrisPulman

Copy link
Copy Markdown
Owner

What kind of change does this PR introduce?

A solution-wide analyzer and build-quality fix. It updates analyzer configuration and packages, resolves source diagnostics across the library, reactive views, benchmarks, sample application, and tests, and removes timing/reflection regressions exposed by the complete multi-target test matrix.

The main architectural fixes use composition for constructor-safe reactive state ownership, a sender-preserving notification relay, explicit forwarding overloads, serialization-safe lock initialization, cross-target compatibility helpers, and generic editable-list pool access.

What is the new behavior?

The complete solution builds in both Release and Debug with zero warnings and zero errors. Reactive view subscriptions are activated without publishing partially constructed facades, public notification sender identity is preserved, index and edit-wrapper behavior remains covered through public APIs, and asynchronous tests synchronize on actual notifications or the intended query rather than fixed delays.

No source-level warning suppressions were added to resolve the diagnostics.

What is the current behavior?

Before this change, the analyzer-enabled Release build produced 13,972 aggregate errors and 8 warnings across the multi-target solution. Analyzer cleanup also exposed test regressions involving erased generic index-key types, private edit-wrapper reflection, throttle completion expectations, empty-notification paths, and legacy-framework scheduler timing.

Checklist

  • Tests have been added or updated (for bug fixes / features)
  • Docs have been added or updated (for bug fixes / features)
  • Changes target the main branch
  • PR title follows Conventional Commits

Additional information

Validation completed locally:

  • dotnet build src\ReactiveList.slnx -c Release --no-restore --nologo -v:minimal: 0 warnings, 0 errors
  • dotnet build src\ReactiveList.slnx -c Debug --no-restore --nologo -v:minimal: 0 warnings, 0 errors
  • Microsoft Testing Platform/TUnit: 2,966 passed, 0 failed, 0 skipped
  • Fresh Cobertura coverage: 46.55% line coverage and 42.79% branch coverage
  • git diff --check: clean

NETSDK1057 is emitted only as the informational preview-SDK banner and is not counted as a build warning.

Source changes:
- resolve analyzer findings throughout ReactiveList, reactive views, extensions, benchmarks, and the sample application
- introduce composed state ownership, sender-preserving notification relays, generic editable-list pool access, and cross-target compatibility helpers
- preserve runtime behavior while replacing optional-parameter and construction-time escape patterns with explicit APIs

Test and tooling changes:
- update analyzer configuration and centralized analyzer packages
- migrate rewritten test assertions to TUnit and replace reflection/timing-sensitive coverage with public behavioral synchronization
- keep multi-target test compatibility across .NET Framework and modern Windows TFMs

Validation:
- Release and Debug solution builds complete with 0 warnings and 0 errors
- Microsoft Testing Platform runs 2,966 tests with 0 failures and 0 skips
- staged diff passes whitespace integrity checks
@ChrisPulman
ChrisPulman marked this pull request as ready for review July 27, 2026 23:40
CI fix:
- add repository Git attributes for C# and build configuration files
- prevent Windows checkout conversion from rewriting analyzer-sensitive sources to CRLF
- keep StyleSharp SST1532 active instead of suppressing the line-ending rule

Validation:
- simulated a Windows checkout with core.autocrlf=true
- confirmed every checked-out C# file contains zero CR bytes
- staged diff passes git whitespace checks
@ChrisPulman
ChrisPulman merged commit 5773c7a into main Jul 28, 2026
1 check passed
@ChrisPulman
ChrisPulman deleted the CP_resolve-build-diagnostics branch July 28, 2026 01:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant