fix(#164): aliased encodingType, duplicate hintName cascade, BCL collision; v1.6.1#165
Merged
Merged
Conversation
…ision; v1.6.1 Fixes the three defects reported when loading the B3 Binary EntryPoint v8.4.2 SBE schema (issue #164). All three are spec-compliance gaps in the generator, validated against the official SBE 1.0 XSD. Fixes - Aliased encodingType on <enum>/<set> now resolved to the underlying primitive (per SBE 1.0 symbolicName_t). Previously emitted the literal alias (e.g. 'enum Boolean : uint8EnumEncoding'), producing CS0246/CS1008. - Duplicate hintName from AddSource no longer aborts the entire generator phase. Suppressed via new SBE015 (Warning); per-item failures are isolated so one bad item does not derail the rest. - BCL name-collision cascade (e.g. <enum name="Boolean">) resolved as a side-effect of the AddSource fix; consumer-side CS0104 documented (use a using-alias). Added - SBE015 diagnostic (Duplicate generated source hintName suppressed). - Regression tests: aliased encodingType (uint8/uint16/char + char array exclusion), driver-level SBE015 trigger, bcl-collision-schema integration fixture. - B3 Binary EntryPoint v8.4.2 schema as integration fixture + B3EntryPointTests smoke (Boolean enum underlying type, FlowType, Sequence message round-trip, schema constants). Release - Bump <Version> to 1.6.1. - Promote SBE013/014/015 from Unshipped to Shipped (Release 1.6.1). - CHANGELOG entry under [1.6.1] - 2026-04-30. Closes #164 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Fixes #164.
Summary
Three spec-compliance defects surfaced when loading the B3 Binary EntryPoint v8.4.2 SBE schema. All validated against the official SBE 1.0 XSD; none are B3-specific.
Fixes
encodingTypeon<enum>/<set>— Per SBE 1.0,encodingTypeis asymbolicName_tand may reference any user-declared<type>. The generator now resolves aliases (e.g.uint8EnumEncoding→byte) instead of emitting the literal alias name (which producedCS0246/CS1008).hintNamecascade — A duplicateAddSourcepreviously threwArgumentExceptionand aborted the generator phase, causing thousands ofCS0246errors against partial output. Now suppressed via new SBE015 (Warning); per-item try/catch isolates bad items.<enum name="Boolean">) — Generated code itself compiles cleanly (was a side-effect of Extract schema parsing helpers and DTOs #2). Consumer-sideCS0104documented in CHANGELOG (workaround:usingalias).New diagnostic
Tests
encodingTyperesolution (uint8/uint16/char + char-array exclusion).SBE015.bcl-collision-schema.xmlintegration fixture + 3 tests for the BCLBooleancollision.B3EntryPointTestssmoke (4 tests: Boolean enum underlying type, FlowType,Sequenceround-trip, constants).Final: 193 unit + 156 integration tests passing. Build clean (0 warnings, 0 errors).
Release
<Version>to 1.6.1.[1.6.1] - 2026-04-30.