Repository navigation
Preserve signed and unsigned WinRT enum backing types - #181
Merged
Merged
Conversation
Keep WinMD Int32/UInt32 backing types through runtime registration, generic IIDs, ABI marshaling, and JavaScript/Python projections. Preserve the signed default and cover high-bit values, collections, boxed references, struct fields, and callbacks. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Mixed-language test coverageWorkflow status: ✅ Passed
|
Resolve nested COM structs and arrays with COM enum metadata, preserve diagnostic handling of pointer-sized aliases, and resolve requested interfaces without parsing unrelated namespace members. Update enum expectations and add native-width regression coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Accept signed 32-bit bit patterns only for generated UInt32 flags enums while keeping plain UInt32 and low-level factories strict. Cover scalar, collection, array, struct, reference, fast-setter, and implementation callback paths. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Ignore incomplete Facade metadata candidates and fall back to the newest versioned Windows SDK metadata before asserting SDK enum contracts. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Allocate WinRT flags helper names against module and parameter scopes. Preserve the validated UInt32 flags input policy in COM projections so signed JavaScript bit patterns normalize before strict native conversion. Add WinMD-to-JavaScript collision and file-dialog option regressions without invoking UI. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Shawn Yuan (shuaiyuanxx)
approved these changes
Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Int32/UInt32backing types through metadata parsing, runtime registration, and JavaScript/Python code generation.i4/u4signatures for generic IIDs and preserve unsigned enum values across native calls, arrays, structs, collections, references, and callbacks.UInt32flags-enum inputs, normalizing them to the corresponding unsigned value.