Skip to content

[R20] Generate collision-free identifiers for valid user names - #24

Open
JetF0x wants to merge 1 commit into
Carsillas:rewritefrom
JetF0x:fix/review-r20
Open

JetF0x wants to merge 1 commit into
Carsillas:rewritefrom
JetF0x:fix/review-r20

Conversation

@JetF0x

@JetF0x JetF0x commented Sep 12, 2026

Copy link
Copy Markdown

Addresses review finding R20.

Valid RPC parameters such as client, writer, and data, escaped keywords such as @event, and repeated nullable struct field names could make generated C# fail to compile. Preserve raw symbol and wire names, escape C# member references, and allocate generated parameters and temporaries against all user parameter names. Nested serializer presence flags now include their field path.

Add six regressions that run both the analyzer and generator before executing generated code. Coverage includes local and remote RPC/broadcast delivery in event and explicit receive modes, generated-prefix parameter names, escaped properties/collections and their wire names, stable message IDs, and nested nullable struct/object roundtrips.

Validation: dotnet test Cat.Network.sln -c Release --verbosity minimal passes all 234 tests (155 runtime, 53 analyzer, 26 generator).

Composition: when combining with R4 (#11), retain its session/profile guard after local broadcast delivery. R21 and R22 also modify message emission; preserve both their changes and R20's identifier allocation.

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