Skip to content

Batch cherry-pick: 9 h3xds1nz upstream PRs (clean apply onto if/main)#3

Merged
oysteinkrog merged 9 commits intoif/mainfrom
cherry-pick-batch-h3xds1nz-2026-05-01
May 1, 2026
Merged

Batch cherry-pick: 9 h3xds1nz upstream PRs (clean apply onto if/main)#3
oysteinkrog merged 9 commits intoif/mainfrom
cherry-pick-batch-h3xds1nz-2026-05-01

Conversation

@oysteinkrog
Copy link
Copy Markdown
Member

@oysteinkrog oysteinkrog commented May 1, 2026

Summary

Batch cherry-pick of 9 cleanly-applied h3xds1nz PRs from dotnet/wpf upstream that haven't been picked up there. Picks up where Phase B left off — these are the perf/cleanup PRs h3xds1nz opened after his last upstream-merged work in May 2025.

Stacked on: #1 (crossgen2 R2R) and #2 (CommandManager typeof fix + denylist) — both merged. Branch is rebased onto current if/main.

Cherry-picked PRs (all clean apply)

Upstream PR Title (commit subject)
dotnet#9977 Define new constructs out of generated file
dotnet#9982 Replace ArrayList in HwndHost with generic List
dotnet#9983 Remember to not make FrugalStructList readonly, dummy
dotnet#10003 Fix invalid value write to CellsPanelHorizontalOffset and infinite loop
dotnet#10248 Adjust style to be on par with other change
dotnet#10310 Remove SecurityHelper from PBT/RF compilation
dotnet#10381 Fix InvalidCastException in Can/ConvertTo
dotnet#10664 Remove empty NativeMethods
dotnet#10711 Replace Box(true) -> TrueBox

All applied with git cherry-pick -x … so the upstream SHA is recorded in each commit.

Dropped from initial batch

  • [StyleCleanUp] Avoid legacy suppression format, use GlobalSuppressions (IDE0077) dotnet/wpf#10668 — "Remove from .editorconfig" (drops IDE0077.severity = suggestion). Upstream's PR is safe because it's stacked on a separate GlobalSuppressions.cs modernization (commit 980642f4d) we haven't picked. Dropping the override without that modernization makes IDE0077 fire as error against existing legacy-format SuppressMessageAttribute entries. Re-pick once we adopt the modernization commit.

Deferred (50 PRs with conflicts)

The remaining 50 of the 60 candidate PRs touch files we've diverged on. They need per-PR judgment.

Modify/delete on already-removed files (5 PRs)

  • 9990 (GenericsInstances.cs), 10009 (PartialArray.cs), 10245 (MessageWindow.cs) — upstream removes; our fork kept
  • 10543 (WeakReferenceCache.cs) — already deleted in our fork; drop the upstream PR
  • 10635 (TreeBuilder.cs) — upstream removes; our fork kept

.editorconfig overlaps (2 PRs)

  • 10613, 10647

Content conflicts (43 PRs)

Files where our fork has accumulated edits that conflict with upstream's edits. Full list captured in cherrypick-results.txt (local).

Test plan

🤖 Generated with Claude Code

@oysteinkrog oysteinkrog force-pushed the cherry-pick-batch-h3xds1nz-2026-05-01 branch from dfff4ed to d2bc09f Compare May 1, 2026 08:19
@oysteinkrog oysteinkrog force-pushed the cherry-pick-batch-h3xds1nz-2026-05-01 branch from d2bc09f to ebb958a Compare May 1, 2026 09:02
@oysteinkrog oysteinkrog changed the title Batch cherry-pick: 10 h3xds1nz upstream PRs (clean apply, stacked on #1 + #2) Batch cherry-pick: 9 h3xds1nz upstream PRs (clean apply onto if/main) May 1, 2026
@oysteinkrog oysteinkrog marked this pull request as ready for review May 1, 2026 09:16
@oysteinkrog oysteinkrog merged commit ee751a4 into if/main May 1, 2026
9 checks passed
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.

2 participants