Skip to content

Bounds on types: re-pin core and generation, hover shows the maximum - #97

Merged
Kinflou merged 3 commits into
masterfrom
feat/bounds-pins
Nov 3, 2026
Merged

Kinflou merged 3 commits into
masterfrom
feat/bounds-pins

Conversation

@Kinflou

@Kinflou Kinflou commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Step 10 of the bounds rollout (ComlineProject/core#98, ComlineProject/core#197).

  • Pins: the same revs as the CLI (Bounds on types, step 10: pins, migration, build --reconcile cli#130): comline-core 8f5dc91, generation c303722, comline-rust 2d50fbf, comline-typescript ea9b9e2. One copy of each in Cargo.lock. The comline.toml schema and checks come from comline-codegen's shared config types at that rev.
  • Hover: core's grammar now has ArraySize::{Max, Exact}, so a type renders as written: char[max 32], u32[max 10], char[8], or a constant's name (char[max MAX_NAME]).
  • Bounds syntax parses with core's grammar, so it gets no false errors. A schema whose strings and lists have no maximum gets core's bounds::unbounded errors, as comline build does.

Merge after ComlineProject/cli#130.

  • validate_on_decode (round 2): the shared schema now types it as a mode (collect, the default, or first) or { off = "why" }. comline.toml checking follows a oneOf the same way it follows an anyOf, and completion offers collect and first. A bare "off" gets an error with a quick fix to { off = "why" }, as comline generate refuses it.

Merge after ComlineProject/generation#116, ComlineProject/comline-rust#104 and ComlineProject/comline-typescript#127, together with ComlineProject/cli#130.

@Kinflou
Kinflou merged commit a39a5ab into master Nov 3, 2026
4 checks passed
@Kinflou
Kinflou deleted the feat/bounds-pins branch November 3, 2026 12:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant