You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: spec/conformance-tests.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -123,7 +123,7 @@ Finalized 2026-05-27 across all four ports (TS / C# / Java / Python). When a fix
123
123
124
124
Last-writer-wins still governs non-conflicting attr overlays (one side unset, or both sides set to the same value). When both contributors set the same `@attr` to *different* non-empty values, the loader raises `ERR_MERGE_CONFLICT` with a `format: "merged"` envelope listing both contributors. When two files declare a node and the second contributes no semantic change (per the FR5a `semantic_diff`), the loader emits `WARN_DUPLICATE_DECLARATION` and the merged node's `source` is **not** upgraded to `format: "merged"`.
125
125
126
-
**WARN envelope-shape assertion**: as of FR5c-finalize the cross-port runners assert envelope shape on `errors[]` but compare `warnings[]`as a flat string list against `expected-warnings.json`. The error-side envelope assertion (code + source.format + source.files + source.jsonPath) is the cross-port contract; lifting the same assertion onto warnings is queued as follow-up work and is gated on a fixture migration from `expected-warnings.json`(string array) to `expected-errors.json#warnings[]`(envelope shape). All four ports currently exercise the FR5c `warning-duplicate-declaration` fixture under the string-list contract.
126
+
**WARN envelope-shape assertion** (TS reference; cross-port follow-up): the conformance runner asserts envelope shape on `warnings[]` (code + source.format + source.files + source.jsonPath) when the fixture's `expected-errors.json` declares warning entries with `source`. Algorithm mirrors errors: per-warning code first, then per-element source-field comparison in declaration order. The `warning-duplicate-declaration`fixture is the reference (migrated from `expected-warnings.json` string list to `expected-errors.json#warnings[]` envelope). Ports that have not yet surfaced `warningEnvelopes` on their `LoadOutcome` get the warnings count check only; per-element source assertions activate as each port's adapter populates the field.
0 commit comments