Skip to content

fix(#164): aliased encodingType, duplicate hintName cascade, BCL collision; v1.6.1#165

Merged
pedrosakuma merged 1 commit into
mainfrom
fix/issue-164-b3-entrypoint
Apr 30, 2026
Merged

fix(#164): aliased encodingType, duplicate hintName cascade, BCL collision; v1.6.1#165
pedrosakuma merged 1 commit into
mainfrom
fix/issue-164-b3-entrypoint

Conversation

@pedrosakuma
Copy link
Copy Markdown
Owner

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

  1. Aliased encodingType on <enum>/<set> — Per SBE 1.0, encodingType is a symbolicName_t and may reference any user-declared <type>. The generator now resolves aliases (e.g. uint8EnumEncodingbyte) instead of emitting the literal alias name (which produced CS0246/CS1008).
  2. Duplicate hintName cascade — A duplicate AddSource previously threw ArgumentException and aborted the generator phase, causing thousands of CS0246 errors against partial output. Now suppressed via new SBE015 (Warning); per-item try/catch isolates bad items.
  3. BCL name collisions (<enum name="Boolean">) — Generated code itself compiles cleanly (was a side-effect of Extract schema parsing helpers and DTOs #2). Consumer-side CS0104 documented in CHANGELOG (workaround: using alias).

New diagnostic

  • SBE015Duplicate generated source suppressed (Warning).

Tests

  • 4 unit tests for aliased encodingType resolution (uint8/uint16/char + char-array exclusion).
  • 2 driver-level tests for SBE015.
  • bcl-collision-schema.xml integration fixture + 3 tests for the BCL Boolean collision.
  • B3 Binary EntryPoint v8.4.2 vendor schema added as integration fixture + B3EntryPointTests smoke (4 tests: Boolean enum underlying type, FlowType, Sequence round-trip, constants).

Final: 193 unit + 156 integration tests passing. Build clean (0 warnings, 0 errors).

Release

  • Bump <Version> to 1.6.1.
  • Promote SBE013/014/015 from Unshipped → Shipped (Release 1.6.1).
  • CHANGELOG entry under [1.6.1] - 2026-04-30.

…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>
@pedrosakuma pedrosakuma merged commit b199f48 into main Apr 30, 2026
1 check passed
@pedrosakuma pedrosakuma deleted the fix/issue-164-b3-entrypoint branch April 30, 2026 13:51
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.

Custom enum encoding type aliases (e.g. uint8EnumEncoding) declared in schema <types> are not resolved

1 participant