End-to-end compile of FederatedMeetup.speckdl (with the cycle-65 Transition envelope added) surfaced a real bug: the speckdl uses default-value syntax on event fields: initial_mesh_peers: List<InitialMeshPeer> = [] The default is a Speckl semantic — a state-machine init value — but the .proto wire format has no place for it. Without stripping, the type expression 'List<InitialMeshPeer> = []' was emitted verbatim as the field type, producing broken proto3 syntax that protoc rejected. Fix: parseEventBlockMultiline now strips '= <expr>' suffix from the type expression before calling parseTypeExpr. The default value is dropped (it's a Speckl semantic only; the wire format carries no default). Tests: 1 new parser test covers the federated-meetup 'initial_mesh_peers: List<InitialMeshPeer> = []' shape. All 56 tests pass (55 baseline + 1 new). tsc build clean. End-to-end verified: with this fix and the cycle-65 federated- meetup speckdl changes, the Speckl-generated .proto now compiles cleanly with 'protoc' (previously rejected). |
||
|---|---|---|
| .. | ||
| __tests__ | ||
| expr | ||
| generators | ||
| index.ts | ||
| parser.ts | ||