Skip to content

Fix PreserveSig COM source generation - #1746

Merged
Jevan Saks (jevansaks) merged 1 commit into
mainfrom
user/jevansa/fix-1745-preservesig-com
Jul 28, 2026
Merged

Fix PreserveSig COM source generation#1746
Jevan Saks (jevansaks) merged 1 commit into
mainfrom
user/jevansa/fix-1745-preservesig-com

Conversation

@jevansaks

Copy link
Copy Markdown
Member

Summary

  • fix preserved [RetVal] parameters in unmanaged COM wrappers so vtable calls receive pointers
  • avoid the .NET COM source generator's __retVal_native collision by renaming by-ref retVal parameters on preserved HRESULT interfaces
  • add focused regressions plus a net10.0 PreserveSig full-generation test and dedicated CI shard

Validation

  • observed 2,898 unique compiler errors in the new full-generation test before the fixes
  • dotnet build -t:build,pack -c Release -warnAsError -warnNotAsError:NU1901,NU1902,NU1903,NU1904
  • non-high-memory Release test suite
  • FullGeneration_Net10_PreserveSig

Fixes #1745

Handle retained RetVal parameters in unmanaged wrappers and avoid the COM source generator's retVal identifier collision. Add focused and full-generation regression coverage for #1745.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 7315c941-053c-41b5-9e78-92703d49ce71
@jevansaks
Jevan Saks (jevansaks) marked this pull request as ready for review July 28, 2026 00:42
@jevansaks
Jevan Saks (jevansaks) merged commit 1f2c0d0 into main Jul 28, 2026
21 checks passed
@jevansaks
Jevan Saks (jevansaks) deleted the user/jevansa/fix-1745-preservesig-com branch July 28, 2026 04:47
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.

Invalid Code Generated for CsWin32.UI.Accessibility methods/interfaces/Delegates With "allowMarshaling": true

2 participants