Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
11ef00a
Pass 0: Add `rsp` mode to TestRunner for refactor validation harness
Sergio0694 May 9, 2026
e8c46a3
Pass 1: Rename WinRT.Projection.Generator.Writer -> WinRT.Projection.…
Sergio0694 May 9, 2026
1497cfc
Pass 2: Remove dead `NetstandardCompat` flag from Settings
Sergio0694 May 9, 2026
91dd178
Pass 3: Remove dead `.rsp` file emission in WinRT.Projection.Generator
Sergio0694 May 9, 2026
618d087
Pass 4: Folder rebalancing -- reshuffle CodeWriters partials by concept
Sergio0694 May 9, 2026
8faec3b
Pass 5: Move model types to `Models/`
Sergio0694 May 9, 2026
836333f
Pass 6.1: Add Extensions/ITypeDefOrRefExtensions.cs with `Names()` he…
Sergio0694 May 9, 2026
b468e77
Pass 6.2: Add Extensions/HasCustomAttributeExtensions.cs (HasAttribut…
Sergio0694 May 9, 2026
04eb829
Pass 6.3: Add MethodDefinition/PropertyDefinition/InterfaceImpl/TypeD…
Sergio0694 May 9, 2026
69f45c8
Pass 7: Split ProjectionGenerator into phase partials
Sergio0694 May 9, 2026
3e00dae
Pass 9: Introduce `IndentedTextWriter` (general-purpose, StringBuilde…
Sergio0694 May 9, 2026
98500c8
Pass 8: Reorganize Helpers/ -- split the 184-line catch-all into focu…
Sergio0694 May 9, 2026
e68edf4
Pass 6.4: Add Extensions/TypeSignatureExtensions.cs (TypeSignature pr…
Sergio0694 May 9, 2026
6c11387
Pass 7.2: Complete ProjectionGenerator partial split (GeneratedIids +…
Sergio0694 May 9, 2026
87bcf10
Pass 10a: Introduce ProjectionEmitContext (additive)
Sergio0694 May 9, 2026
c695b85
Pass 19: Centralize magic strings into References/
Sergio0694 May 9, 2026
eaed87b
Pass 20: Comment cleanup + Errors/
Sergio0694 May 9, 2026
33907bd
Pass 17a: Add Extensions/IndentedTextWriterExtensions.cs
Sergio0694 May 9, 2026
df6fb4c
Pass 18a: Add ABI marshalling shape analysis (additive infrastructure)
Sergio0694 May 9, 2026
b1f32dc
Pass 21a: Remove IDE0004/IDE0005 csproj suppressions
Sergio0694 May 9, 2026
07cd81c
Pass 21b: Remove 16 dead `<NoWarn>` IDE suppressions from csproj
Sergio0694 May 9, 2026
7336174
Pass 23a: Add XML doc completeness for Models/ state-bag types
Sergio0694 May 9, 2026
f0f2af0
Pass 10b: Restructure TextWriter/TypeWriter on top of IndentedTextWriter
Sergio0694 May 9, 2026
10e55ed
Pass 10c-1: Migrate ProjectionGenerator partials to IndentedTextWriter
Sergio0694 May 9, 2026
686a067
Pass 10c-2: Migrate RefModeStubs writer family + IL2026 pragmas
Sergio0694 May 9, 2026
9633767
Pass 10c-3: Migrate type-name family to (IndentedTextWriter, Projecti…
Sergio0694 May 9, 2026
58c1795
Pass 10c-4: Migrate Methods family + IdentifierEscaping to (IndentedT…
Sergio0694 May 9, 2026
092c91d
Pass 10c-5: Migrate WinRT attribute helpers to (IndentedTextWriter, P…
Sergio0694 May 9, 2026
3f094b4
Pass 10c-6: Migrate CustomAttributes family to (IndentedTextWriter, P…
Sergio0694 May 9, 2026
1970868
Pass 10c-7: Migrate MappedInterfaceStubs family to (IndentedTextWrite…
Sergio0694 May 9, 2026
39f4747
Pass 10c-8: Migrate Interface and Guids families to (IndentedTextWrit…
Sergio0694 May 9, 2026
67bdb63
Pass 10c-9: Migrate ObjRefs family to (IndentedTextWriter, Projection…
Sergio0694 May 9, 2026
bc1f9cc
Pass 10c-10: Migrate Component family to (IndentedTextWriter, Project…
Sergio0694 May 9, 2026
ecbdd6d
Pass 10c-11: Migrate Builders/CodeWriters dispatchers to (IndentedTex…
Sergio0694 May 9, 2026
8a32496
Pass 10c-12: Add (IndentedTextWriter, ProjectionEmitContext) overload…
Sergio0694 May 9, 2026
e0ccb6a
Pass 10c-13: Add (IndentedTextWriter, ProjectionEmitContext) overload…
Sergio0694 May 9, 2026
8d05b2b
Pass 10c-14: Add (IndentedTextWriter, ProjectionEmitContext) overload…
Sergio0694 May 9, 2026
835e766
Pass 10c-15: Promote primary signature in Class/ClassMembers/Construc…
Sergio0694 May 9, 2026
56ece32
Pass 21 (cont): Remove IDE0011/0019/0042/0059/0090 suppressions
Sergio0694 May 9, 2026
0d506da
Pass 21 (cont): Remove IDE0008 (use explicit type instead of 'var') s…
Sergio0694 May 9, 2026
d5cead2
Pass 21 (cont): Remove IDE0300/0301/0305/0306 (collection initializat…
Sergio0694 May 9, 2026
06c05b2
Pass 21 (cont): Remove IDE0057 (use range operator) suppression
Sergio0694 May 9, 2026
f5f1e68
Pass 21 (cont): Remove IDE0060 (unused parameter) suppression
Sergio0694 May 9, 2026
0d88e1f
Pass 10c-16: Flatten Class.cs bodies to (IndentedTextWriter, Projecti…
Sergio0694 May 9, 2026
04145a5
Pass 10c-17: Flatten ClassMembers.cs bodies to (IndentedTextWriter, P…
Sergio0694 May 9, 2026
2d431bb
Pass 10c-18: Flatten Constructors.cs bodies to (IndentedTextWriter, P…
Sergio0694 May 9, 2026
4f44843
Pass 10c-19: Flatten Abi.cs bodies to (IndentedTextWriter, Projection…
Sergio0694 May 9, 2026
c80b3cc
Pass 10c-19 polish: dotnet format Abi.cs + drop IDE0055 from NoWarn
Sergio0694 May 9, 2026
dfaeed5
Pass 10c-20: Delete all unused legacy TypeWriter passthrough overloads
Sergio0694 May 9, 2026
e5f0868
Pass 10c-21: Delete TypeWriter and TextWriter types -- Pass 10 complete
Sergio0694 May 9, 2026
255afca
Pass 11b/c: Replace _cacheRef with context.Cache in flattened bodies
Sergio0694 May 9, 2026
2608b32
Pass 11d (1/n): Migrate ResolveCrossModuleType and ResolveInterfaceTy…
Sergio0694 May 9, 2026
cd7d343
Pass 11d (2/n): Migrate ResolveInterface and FindPropertyInBase* helpers
Sergio0694 May 9, 2026
6522048
Pass 11d (3/n): Migrate FastAbi helpers in Class.cs
Sergio0694 May 9, 2026
98ba867
Pass 11d (4/n): Migrate Abi.cs utility predicates + delete _cacheRef …
Sergio0694 May 9, 2026
4ee21d6
Pass 12 (1/n): Extract WriteAbiEnum to Factories/AbiEnumFactory.cs
Sergio0694 May 9, 2026
fdbe951
Pass 12 (2/n): Extract WriteAbiStruct to Factories/AbiStructFactory.cs
Sergio0694 May 9, 2026
6f49aad
Pass 12 (3/n): Extract WriteReferenceImpl to Factories/ReferenceImplF…
Sergio0694 May 9, 2026
bb5ce92
Pass 12 (4/n): Extract AbiDelegateFactory.cs (9 delegate-emission met…
Sergio0694 May 9, 2026
a2819a4
Pass 12 (5/n): Extract AbiInterfaceFactory.cs (6 interface-emission m…
Sergio0694 May 9, 2026
ca7a124
Pass 12 (6/n): Extract AbiInterfaceIDicFactory.cs (8 IDIC-shim methods)
Sergio0694 May 9, 2026
653131a
Pass 12 (7/n): Extract AbiClassFactory.cs (5 class-emission methods)
Sergio0694 May 9, 2026
8260ddd
Pass 12 (8/n): Extract EventTableFactory.cs (3 event-storage methods)
Sergio0694 May 9, 2026
a0daca3
Pass 12 (9/n): Extract AbiMethodBodyFactory.cs (8 method-body methods)
Sergio0694 May 9, 2026
0db94d3
Pass 12 (10/n): Extract Helpers/AbiTypeWriter.cs (TypeSemantics dispa…
Sergio0694 May 9, 2026
20dcbb2
Pass 12 (11/n): Extract Helpers/ArrayElementEncoder.cs (4 array-name …
Sergio0694 May 9, 2026
2436d77
Pass 12 (12/n): Extract StructEnumMarshallerFactory.cs (struct/enum m…
Sergio0694 May 9, 2026
331b340
Pass 13 (1/n): Rename CodeWriters.Methods.cs -> MethodFactory
Sergio0694 May 9, 2026
f830fcd
Pass 13 (2/n): Rename CodeWriters.ObjRefs.cs -> ObjRefNameGenerator
Sergio0694 May 9, 2026
dac4a66
Pass 13 (3/n): Rename CodeWriters.Guids.cs -> IIDExpressionWriter
Sergio0694 May 9, 2026
f9511fc
Pass 13 (4/n): Rename CodeWriters.InteropTypeName.cs -> InteropTypeNa…
Sergio0694 May 9, 2026
ac2e5a9
Pass 13 (5/n): Rename CodeWriters.TypeNames.cs -> TypedefNameWriter
Sergio0694 May 9, 2026
7d9360a
Pass 13 (6/n): Rename CodeWriters.CustomAttributes.cs -> CustomAttrib…
Sergio0694 May 9, 2026
87856a2
Pass 13 (7/n): Rename CodeWriters.Helpers.cs -> MetadataAttributeFactory
Sergio0694 May 9, 2026
7f4817c
Pass 13 (8/n): Rename CodeWriters.MappedInterfaceStubs.cs -> MappedIn…
Sergio0694 May 9, 2026
830a6d4
Pass 13 (9/n): Rename CodeWriters.RefModeStubs.cs -> RefModeStubFactory
Sergio0694 May 9, 2026
f6c5622
Pass 13 (10/n): Rename CodeWriters.Component.cs -> ComponentFactory
Sergio0694 May 9, 2026
0b6f487
Pass 13 (11/n): Rename CodeWriters.Interface.cs -> InterfaceFactory
Sergio0694 May 9, 2026
3a58e9c
Pass 13 (12/n): Rename CodeWriters.Class.cs -> ClassFactory
Sergio0694 May 9, 2026
4b6c4b0
Pass 13 (13/n): Rename CodeWriters.ClassMembers.cs -> ClassMembersFac…
Sergio0694 May 9, 2026
45362a2
Pass 13 (14/n): Rename CodeWriters.Constructors.cs -> ConstructorFactory
Sergio0694 May 9, 2026
b84fa8c
Pass 13 (15/n): Rename CodeWriters.Abi.cs -> AbiTypeHelpers
Sergio0694 May 9, 2026
d8d2482
Pass 13 (16/n): Rename Builders/CodeWriters.cs -> ProjectionFileBuilder
Sergio0694 May 9, 2026
207dbbf
Pass 14 (1/n): Replace Write("X\n") with WriteLine("X") (563 sites)
Sergio0694 May 9, 2026
63fad76
Pass 14 (2/n): Roslyn-driven Write/WriteLine consolidation (453 sites)
Sergio0694 May 9, 2026
c77e9de
Pass 23 (2/n) + Pass 21 (cleanup): Drop CS1591/1573/1574/1712/1734 su…
Sergio0694 May 9, 2026
7642cac
Pass 21 (cleanup): Drop IDE0058 + IDE0059 suppressions
Sergio0694 May 9, 2026
332987a
Pass 22 (1/n): Remove unwanted "using WindowsRuntime.ProjectionWriter…
Sergio0694 May 9, 2026
1cf0a54
Pass 22 (2/n): Dedupe GetExclusiveToType + delete Helpers/Helpers.cs
Sergio0694 May 9, 2026
2e3c20f
Pass 22 (3/n) + Pass 20 (cleanup): Strip C++ porting references from …
Sergio0694 May 9, 2026
7e84f16
Pass 22 (4/n) + Pass 20 (cleanup): More aggressive C++ reference strip
Sergio0694 May 9, 2026
d77f975
Pass 22 (5/n) + Pass 20 (cleanup): Final C++ reference strip + Settin…
Sergio0694 May 9, 2026
8168b62
Pass 22 (6/n) + Pass 20 (cleanup): Multi-line C++ ref strip + public-…
Sergio0694 May 9, 2026
5c5f245
Pass 22 (7/n) + Pass 20 (cleanup): Last C++ refs gone (0 remaining)
Sergio0694 May 9, 2026
7c3b245
Pass 22 (8/n) + Pass 20 (cleanup): Strip helpers.h/main.cpp/truth-pat…
Sergio0694 May 9, 2026
cf945a2
Pass 21 (cleanup): Apply 38 IDE0028 collection-expression simplificat…
Sergio0694 May 9, 2026
bcafbf6
Pass 21 (cleanup): Apply ~58 IDE0078 pattern-matching simplifications
Sergio0694 May 9, 2026
c5141ae
Pass 22 (9/n) + Pass 20: Cleanup csproj VERSION_STRING comment
Sergio0694 May 9, 2026
61a3dcc
Pass 14 (3/n): Split multi-line Write strings into individual WriteLi…
Sergio0694 May 10, 2026
b048d96
Pass 14 (4/n): Consolidate WriteLine/Write runs into raw multi-line i…
Sergio0694 May 10, 2026
7926690
Revert "Pass 14 (4/n): Consolidate WriteLine/Write runs into raw mult…
Sergio0694 May 10, 2026
c3f1370
Pass 14 (4/n redo): Consolidate WriteLine/Write runs into raw multi-l…
Sergio0694 May 10, 2026
880814a
Revert "Pass 14 (4/n redo): Consolidate WriteLine/Write runs into raw…
Sergio0694 May 10, 2026
c6f7967
Pass 14 (4/n re-redo): Consolidate WriteLine/Write runs (159 sites, i…
Sergio0694 May 10, 2026
284c013
Pass 14 (5/n): Splitter for $-interpolated strings + smarter consolid…
Sergio0694 May 10, 2026
a7e72b4
Pass 14 (6/n): Visit switch sections + zero embedded \n literals remain
Sergio0694 May 10, 2026
df22cb7
Pass 15 (1/n): Convert WriteLine("{") + body + WriteLine("}") -> usin…
Sergio0694 May 10, 2026
9bd96cc
Revert "Pass 15 (1/n): Convert WriteLine("{") + body + WriteLine("}")…
Sergio0694 May 10, 2026
b9330aa
Revert "Pass 14 (6/n): Visit switch sections + zero embedded \n liter…
Sergio0694 May 10, 2026
6bad004
Revert "Pass 14 (5/n): Splitter for $-interpolated strings + smarter …
Sergio0694 May 10, 2026
973bba8
Revert "Pass 14 (4/n re-redo): Consolidate WriteLine/Write runs (159 …
Sergio0694 May 10, 2026
ea7ed7e
Pass 14 (re-do, 7/n): Fix raw multi-line interp string trailing-newli…
Sergio0694 May 10, 2026
90c9518
Pass 16 (1/n): Strip trailing whitespace from emitted lines
Sergio0694 May 10, 2026
15d6b3d
Pass 16 (2/n): Make WriteLine() idempotent on blank-line collapse
Sergio0694 May 10, 2026
bf7ef21
Pass 16 (3/n): Prepend newline in WriteLine when buffer ends with clo…
Sergio0694 May 10, 2026
bcc2ddc
Pass 16 (4/n): Extend WriteLine prepend-newline rule to opening braces
Sergio0694 May 10, 2026
8481572
Pass 16 (5/n): Apply brace-prepend rule to Write multi-line entries
Sergio0694 May 10, 2026
30bb152
Pass 16 (6/n): Apply brace-prepend rule to indented single-line Write
Sergio0694 May 10, 2026
cd93960
Pass 16 (7/n): Auto-terminate multi-line Write ending in stmt-termina…
Sergio0694 May 10, 2026
6b0dbfc
Pass 16 (8/n): Indent namespace bodies via IncreaseIndent/DecreaseIndent
Sergio0694 May 10, 2026
e292b63
Pass 16 (9/n): Indent class body via IncreaseIndent in WriteClassCore
Sergio0694 May 10, 2026
b794148
Pass 16 (10/n): Indent interface body via IncreaseIndent in WriteInte…
Sergio0694 May 10, 2026
0e1e1e2
Pass 16 (11/n): Indent enum body via IncreaseIndent in WriteEnum
Sergio0694 May 10, 2026
c75b335
Pass 16 (12/n): Indent ABI Vftbl struct + Impl class bodies
Sergio0694 May 10, 2026
c8003f8
Pass 16 (13/n): Fix embedded \n literals in non-multiline Write calls
Sergio0694 May 10, 2026
48d28b4
Pass 16 (14/n): Replace embedded \r\n / \n in AbiMethodBodyFactory Wr…
Sergio0694 May 10, 2026
e59a275
Pass 16 (15/n): Convert remaining MappedInterfaceStubFactory \n liter…
Sergio0694 May 10, 2026
4d90d55
Pass 16 (16/n): Convert remaining AbiInterfaceIDicFactory \n literals…
Sergio0694 May 10, 2026
7c16599
Pass 16 (17/n): Eliminate remaining \n literals in writer string content
Sergio0694 May 10, 2026
b5867e2
Pass 21 (cleanup): Eliminate IDE0058 + IDE0078 + IDE0028 suppressions
Sergio0694 May 10, 2026
9d44d4f
Pass 15 (2/n): Convert WriteClassCore to using (writer.WriteBlock())
Sergio0694 May 10, 2026
c0dd196
Pass 23 (cleanup): Eliminate remaining "Mirrors C++ ..." doc references
Sergio0694 May 10, 2026
6fb9345
P0-2: Add sub-namespaces for Builders/Factories/Generation/Helpers/Me…
Sergio0694 May 10, 2026
ecde5fa
P0-4: Rename MethodSig/ParamInfo/ParamCategory/ParamHelpers types
Sergio0694 May 10, 2026
5de3941
P0-5 + P1-5: Remove legacy passthrough methods + scope CheckPlatform/…
Sergio0694 May 10, 2026
878d941
P0-3: Convert Extensions/*.cs to C# 14 extension(Receiver) blocks
Sergio0694 May 10, 2026
322e2d1
P0-1: Split AbiMethodBodyFactory.cs (2340 lines) into 4 partial files
Sergio0694 May 10, 2026
98648b1
P1-8: Split ConstructorFactory + ClassMembersFactory into partials
Sergio0694 May 10, 2026
b52412b
P1-1: Strip 297 inline AsmResolver.* fully-qualified references
Sergio0694 May 10, 2026
03d4e14
P1-2: Migrate ad-hoc throws to well-known projection writer exceptions
Sergio0694 May 10, 2026
a17d659
P1-3: Wire AbiTypeShapeResolver into emission paths
Sergio0694 May 10, 2026
8e466fc
P1-4: Adopt ProjectionNames constants at callsites
Sergio0694 May 10, 2026
6a059bd
P1-6: Split AbiTypeHelpers.cs (756 lines) into per-concept partials
Sergio0694 May 10, 2026
9f99153
P1-7: Adopt WriteBlock() in additional emission paths
Sergio0694 May 10, 2026
0307c69
P1-9: Remove residual C++/refactor-history comments
Sergio0694 May 10, 2026
8f4a2f2
P1-10: Add missing emission micro-helpers
Sergio0694 May 10, 2026
39a902f
P1-11: Complete XML doc end-state pass
Sergio0694 May 10, 2026
83e888d
P2-2 + P2-13 + P2-14: Remove in-source pragmas, drop System. prefixes…
Sergio0694 May 10, 2026
b62f57a
P2-3 + P2-6: Standardize factory entry-point naming + readonly Params
Sergio0694 May 10, 2026
6610a34
P2-12 + P2-15: Audit FlushToFile, normalize summary style to multi-line
Sergio0694 May 10, 2026
04a93c2
P2-5 + P2-11: Adopt primary constructors + clean TestRunner NoWarn
Sergio0694 May 10, 2026
42f7770
P2-10: Rename IIDExpressionWriter -> IIDExpressionGenerator
Sergio0694 May 10, 2026
a0fdf95
P2-8: Commit golden-output validation harness
Sergio0694 May 10, 2026
f6a564f
P2-1 + P2-9: Document final NoWarn rationale + xunit-test policy
Sergio0694 May 10, 2026
25b3aa6
Fix Generator project consumer of WindowsMetadataExpander after P0-2
Sergio0694 May 10, 2026
5078881
R2 P0-1 (F1): Adopt References/WellKnown* constants at callsites
Sergio0694 May 10, 2026
175936f
R2 P0-2 (F2): Wire AbiTypeShapeResolver into all classification calls…
Sergio0694 May 10, 2026
afcb57d
R2 P1-1 (F8): Expand error model -- replace ad-hoc BCL exceptions in …
Sergio0694 May 10, 2026
d1a2790
R2 P0-3 (F6): Eliminate silent catch{} blocks via TryResolve helper
Sergio0694 May 10, 2026
1a2ea24
R2 P1-2 (F4): Convert MappedTypes/ContractPlatforms to FrozenDictionary
Sergio0694 May 10, 2026
bb9460f
R2 P1-3 (F3): Reword refactor-history comments to end-state voice
Sergio0694 May 10, 2026
b34f48b
R2 P1-4 (F7): Convert PropertyAccessorState fields to properties
Sergio0694 May 10, 2026
733266f
R2 P1-5 (F10): Flatten Extensions to root namespace
Sergio0694 May 10, 2026
d2bf913
R2 P2-1/3/14/15/26: Tiny FQN/comment/format polish
Sergio0694 May 10, 2026
fea00d7
R2 P2-4/5/6: Emission/style polish (if-spacing, WriteLine(), local na…
Sergio0694 May 10, 2026
f288e9e
R2 P2-7: Rename MethodSignatureInfo abbreviated names to full forms
Sergio0694 May 10, 2026
343f8a1
R2 P2-10: Port GuidGenerator to Span<byte>/stackalloc/ArrayPool
Sergio0694 May 10, 2026
4b56310
R2 P2-11/13/17: ProjectionEmitContext + Settings polish
Sergio0694 May 10, 2026
a4eefa3
R2 P2-18/19/20/25: Misc polish (TypeFilter, AbiTypeHelpers, regex, Pa…
Sergio0694 May 10, 2026
d43618f
R2 P2-9 (partial): Move Settings + ProjectionEmitContext from Helpers…
Sergio0694 May 10, 2026
e349352
R2 P2-23: Fill XML doc gaps on internal members
Sergio0694 May 10, 2026
97e7a72
Sort using directives System-first; remove stray blank lines (R3 P1-2…
Sergio0694 May 11, 2026
66680ac
Rewrite validate-writer-output.ps1 README to describe only committed …
Sergio0694 May 11, 2026
f7c6717
Adopt C# 14 field keyword and ProjectionNames constants for lazy/magi…
Sergio0694 May 11, 2026
8ce4bef
Narrow registry catch + replace stale ResolveInterface try/catch with…
Sergio0694 May 11, 2026
34eb135
Strip residual fully-qualified System / Writers references (R3 P2-3)
Sergio0694 May 11, 2026
b0cebec
Cosmetic cleanup: NoWarn comment, no-op ternary, line-pin comment, ty…
Sergio0694 May 11, 2026
ed33f78
Rename private static readonly s_ fields to PascalCase (R3 P2-9)
Sergio0694 May 11, 2026
0c31c92
Convert MappedType to readonly record struct (R3 P2-11)
Sergio0694 May 11, 2026
a267096
Rename WriteTempDelegateEventSourceSubclass and HasCustomAttributeExt…
Sergio0694 May 11, 2026
2988613
NamespaceMembers primary ctor; ref-struct scopes; drop defensive null…
Sergio0694 May 11, 2026
1e1594c
Fill XML docs (CancellationToken, TypeFilter); align well-known spell…
Sergio0694 May 11, 2026
2a4a6d5
Dedupe factory walk; lift Resources.Base const; cache Additions looku…
Sergio0694 May 11, 2026
79eedbf
Add optional Logger callback to ProjectionWriterOptions (R3 P2-8)
Sergio0694 May 11, 2026
f863194
Parallelize projection generation across namespaces, IIDs, and compon…
Sergio0694 May 11, 2026
26cdad8
Pool IndentedTextWriter instances via IndentedTextWriterPool
Sergio0694 May 11, 2026
3b09e2e
Add string-returning overloads for scratch-writer call sites
Sergio0694 May 11, 2026
8405ebe
Reformat single-line if statements to multi-line with blank-line padding
Sergio0694 May 11, 2026
8862cc2
F2: Replace pool Return method with disposable IndentedTextWriterOwne…
Sergio0694 May 11, 2026
1683074
F3 + F4: Reserve writer error IDs in 5000+ range; match interop Aggre…
Sergio0694 May 11, 2026
9e6c347
F1: Adopt per-site ThrowOrAttach exception context (option A)
Sergio0694 May 11, 2026
a63c121
F5 + F6: Cancellation granularity + expand 3 residual single-line con…
Sergio0694 May 11, 2026
580a050
F7 + F8: Well-known guards in ProjectionWriter.Run; surface MaxDegree…
Sergio0694 May 11, 2026
0bd3194
F9-F12: Drop dead ABI scope state; FlagsAttribute->Flags; FQN strip; …
Sergio0694 May 11, 2026
5fd5cef
F13-F15 + N4-N7: scratch-writer overload + side-effect removal + cosm…
Sergio0694 May 11, 2026
4402d60
N1-N3 + N8: IDE-suppression doc, XMLdoc completion, blank-line paddin…
Sergio0694 May 11, 2026
02e26dc
Inline redundant standalone brace blocks across writer source
Sergio0694 May 11, 2026
80fb540
Fix CS0103 in ReferenceProjectionGenerator: missing Helpers using
Sergio0694 May 11, 2026
dc900fe
F11: Replace Settings field ??= lazy filters with MakeReadOnly() pattern
Sergio0694 May 11, 2026
56101af
F1: Expand residual single-line and packed statement formatting
Sergio0694 May 11, 2026
34b2a57
F2 + F6 + F12: Tighten exception discipline; drop SuppressMessage
Sergio0694 May 12, 2026
b24769d
F3 + F7 + N6 + N7: Errors/ polish to match interop/projection-generat…
Sergio0694 May 12, 2026
7b09a48
F4: Add concise XML docs to factory and helper entry-point methods
Sergio0694 May 12, 2026
0106666
F5 + F8: Determinism + single-probe TryAdd in MetadataCache
Sergio0694 May 12, 2026
e2f859f
F9 + F10 + N4: Whitespace cleanup (double-blank-lines + block-boundar…
Sergio0694 May 12, 2026
9fe4aca
F13: Split NamespaceMembers into its own file (Metadata/NamespaceMemb…
Sergio0694 May 12, 2026
309f99d
F15: Document measured suppression-fire counts in csproj NoWarn comment
Sergio0694 May 12, 2026
2b42980
NITs N1, N2, N5, N8: Cosmetic polish
Sergio0694 May 12, 2026
c0d0f57
Fix MSB4024: duplicate MaxDegreesOfParallelism attribute on _RunCsWin…
Sergio0694 May 12, 2026
e583f84
Fix MSB4064: drop MaxDegreesOfParallelism from RunCsWinRTForwarderImp…
Sergio0694 May 12, 2026
b817a8f
Fix 3 emission bugs surfaced by CI compile of generated projection ou…
Sergio0694 May 12, 2026
2bb0ceb
Make IndentedTextWriter "dumb": remove all auto-fixup heuristics
Sergio0694 May 12, 2026
eeb97b8
Bulk fix: Write -> WriteLine for 147 multiline raw strings ending wit…
Sergio0694 May 12, 2026
ed81acc
Convert WindowsRuntimeDefault/ExclusiveToInterfaces emitters to use W…
Sergio0694 May 12, 2026
b3b7688
Restore InAbiNamespace/InAbiImplNamespace tracking on ProjectionEmitC…
Sergio0694 May 12, 2026
dccf48c
Use trailing-WriteLine pattern for interface member loops
Sergio0694 May 12, 2026
f87a9f1
Refactor WriteStruct to use WriteBlock pattern (proper indentation)
Sergio0694 May 12, 2026
9ae7e1e
Fix two semantic regressions in generated projection output
Sergio0694 May 12, 2026
24087e4
Fix indent regression in class-body emit: use WriteBlock for ctors/me…
Sergio0694 May 12, 2026
414e15d
Use single multiline raw strings for fixed-content blocks
Sergio0694 May 12, 2026
45234c8
Fix comma-on-own-line in vtable call argument lists
Sergio0694 May 12, 2026
fd655e4
Remove useless empty else branch in WriteComposableConstructors
Sergio0694 May 12, 2026
04e7aae
Fix AbiTypeShapeResolver predicates to match OLD AbiTypeHelpers seman…
Sergio0694 May 12, 2026
832c59c
Fix returnIsAnyStruct to exclude ComplexStruct + fix HasTypesToProjec…
Sergio0694 May 12, 2026
b2b2510
Rename IsAnyStruct callers to IsBlittableStruct for clarity
Sergio0694 May 12, 2026
f6dc548
Fix M6 + R1 + R2 + R3 + R5 + R6 cosmetic regressions
Sergio0694 May 12, 2026
718efb3
Fix 'Pixel' typo in GridLength addition + extend compile coverage to …
Sergio0694 May 12, 2026
61c4237
Simplify GridUnitType validation check
Sergio0694 May 12, 2026
0894d51
Fix interface declaration emit: respect InAbiImplNamespace per C++ so…
Sergio0694 May 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions nuget/Microsoft.Windows.CsWinRT.CsWinRTGen.targets
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
AdditionalArguments="@(CsWinRTGeneratorAdditionalArgument)"
StandardOutputImportance="$(CsWinRTGeneratorStandardOutputImportance)"
StandardErrorImportance="$(CsWinRTGeneratorStandardErrorImportance)"
MaxDegreesOfParallelism="$(CsWinRTGeneratorMaxDegreesOfParallelism)"
LogStandardErrorAsError="$(CsWinRTGeneratorLogStandardErrorAsError)" />

<!-- Set the metadata for the interop .dll item and add it to the required output groups -->
Expand Down Expand Up @@ -411,6 +412,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
CsWinRTToolsArchitecture="$(CsWinRTToolsArchitecture)"
StandardOutputImportance="$(CsWinRTGeneratorStandardOutputImportance)"
StandardErrorImportance="$(CsWinRTGeneratorStandardErrorImportance)"
MaxDegreesOfParallelism="$(CsWinRTGeneratorMaxDegreesOfParallelism)"
LogStandardErrorAsError="$(CsWinRTGeneratorLogStandardErrorAsError)" />

<!-- Only wire up the component DLL if it was actually produced (i.e. component types were found) -->
Expand Down Expand Up @@ -488,6 +490,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
AdditionalArguments="@(CsWinRTGeneratorAdditionalArgument)"
StandardOutputImportance="$(CsWinRTGeneratorStandardOutputImportance)"
StandardErrorImportance="$(CsWinRTGeneratorStandardErrorImportance)"
MaxDegreesOfParallelism="$(CsWinRTGeneratorMaxDegreesOfParallelism)"
LogStandardErrorAsError="$(CsWinRTGeneratorLogStandardErrorAsError)" />

<!-- Set the metadata for the SDK projection .dll item -->
Expand Down Expand Up @@ -573,6 +576,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
AdditionalArguments="@(CsWinRTGeneratorAdditionalArgument)"
StandardOutputImportance="$(CsWinRTGeneratorStandardOutputImportance)"
StandardErrorImportance="$(CsWinRTGeneratorStandardErrorImportance)"
MaxDegreesOfParallelism="$(CsWinRTGeneratorMaxDegreesOfParallelism)"
LogStandardErrorAsError="$(CsWinRTGeneratorLogStandardErrorAsError)" />

<!-- Set the metadata for the SDK XAML .dll item -->
Expand Down
32 changes: 32 additions & 0 deletions src/Tests/CSWinMDComponent/CSWinMDComponent.vcxproj.filters
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resources">
<UniqueIdentifier>accd3aa8-1ba0-4223-9bbe-0c431709210b</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Generated Files">
<UniqueIdentifier>{926ab91d-31b4-48c3-b9a4-e681349f27f0}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp" />
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
<ClCompile Include="Class1.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
<ClInclude Include="Class1.h" />
</ItemGroup>
<ItemGroup>
<None Include="CSWinMDComponent.def" />
<None Include="CSWinMDComponent.cs" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<None Include="PropertySheet.props" />
</ItemGroup>
<ItemGroup>
<Text Include="readme.txt" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,12 @@ public sealed class RunCsWinRTMergedProjectionGenerator : ToolTask
/// </summary>
public bool WindowsUIXamlProjection { get; set; }

/// <summary>
/// Gets or sets the maximum number of parallel tasks the projection writer is allowed to dispatch.
/// </summary>
/// <remarks>If not set, the default will match the number of available processor cores.</remarks>
public int MaxDegreesOfParallelism { get; set; } = -1;

/// <inheritdoc/>
protected override string ToolName => "cswinrtprojectiongen.exe";

Expand Down Expand Up @@ -208,6 +214,8 @@ protected override string GenerateResponseFileCommands()
AppendResponseFileCommand(args, "--windows-ui-xaml-projection", "true");
}

AppendResponseFileCommand(args, "--max-degrees-of-parallelism", MaxDegreesOfParallelism.ToString());

// Add any additional arguments that are not statically known
foreach (ITaskItem additionalArgument in AdditionalArguments ?? [])
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
namespace WindowsRuntime.InteropGenerator.Errors;

/// <summary>
/// A well known exception for the interop generator.
/// A well-known exception for the interop generator.
/// </summary>
internal sealed class WellKnownInteropException : Exception
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
namespace WindowsRuntime.InteropGenerator.Errors;

/// <summary>
/// A well known warning for the interop generator.
/// A well-known warning for the interop generator.
/// </summary>
internal sealed class WellKnownInteropWarning
{
Expand Down

This file was deleted.

Loading