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
{{ message }}
Repository navigation
Commit be80dd8
Browse filesBrowse the repository at this point in the historyBrowse files
Closes the two follow-ups flagged after the FR-019 graduation:
1. Boolean-attr validation divergence. The JVM loader silently coerced a
non-boolean boolean-attr value (Boolean.parseBoolean maps any non-"true" string
to false) where TS / C# / Python already reject it with ERR_BAD_ATTR_VALUE.
BooleanAttribute.setValueAsString now parses strictly — accepts only
case-insensitive true/false and throws otherwise, mirroring IntAttribute's
parse-throws-on-bad-value contract — so the parser's strict-mode catch surfaces
ERR_BAD_ATTR_VALUE. Corrects every Java boolean attr, not just @provided.
- New cross-port loader fixture fixtures/conformance/error-provided-not-boolean
(@provided: "yes" -> ERR_BAD_ATTR_VALUE), now green in all five ports.
- No regression: full metadata (987), codegen-spring (140), codegen-kotlin, and
the metamodel conformance corpus (TS 326, Java 326, C# 596, Python) all pass.
2. Pre-existing TS typecheck errors in metadata/test/template-response-ref.test.ts
(a `.ts` import extension + an Error-typed `.some()` predicate). Fixed to the
repo's conventional `.js` import + `(e as { code?: string }).code` cast. (Other
pre-existing metadata test-file typecheck errors are unrelated to FR-019 and
left untouched.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`ERR_BAD_ATTR_VALUE` in all five ports. `@csEnumType` was never introduced
133
+
(retired in design).
134
+
-**Boolean-validation alignment:** adding the error fixture surfaced that the JVM
135
+
loader silently coerced a non-boolean boolean-attr value (`Boolean.parseBoolean`
136
+
maps any non-`"true"` string to `false`) where TS / C# / Python already reject it.
137
+
`BooleanAttribute.setValueAsString` now parses strictly (accepts only
138
+
case-insensitive `true`/`false`, throws otherwise — mirroring `IntAttribute`), so
139
+
the parser's strict-mode catch surfaces `ERR_BAD_ATTR_VALUE`. This corrects every
140
+
Java boolean attr, not just `@provided`; the full metadata + conformance + codegen
141
+
suites pass with no regression.
142
+
-**Follow-up (not here):**`@provided` on `object.value` (reference a hand-written
143
+
value class) — same attribute, separate slice.
137
144
138
145
## Cross-references
139
146
-[ADR-0026](../../../spec/decisions/ADR-0026-shared-and-provided-named-types.md) — `@provided` as a cross-type provenance flag (enums + value objects); shared vs provided orthogonal; Option 2 upgrade path.
0 commit comments