feat(argv,derive): add compiled clause support - #1320
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Central YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
24d040a to
911cc4c
Compare
911cc4c to
20207e5
Compare
20207e5 to
e3f365e
Compare
e3f365e to
b79b9c2
Compare
b79b9c2 to
eb1cdf8
Compare
eb1cdf8 to
a86bd3f
Compare
a86bd3f to
ca197ee
Compare
ca197ee to
f2ed8d7
Compare
1304064 to
64a99e6
Compare
Instruction counts
No instruction-count regression above 1%. Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run. Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes. Shadow comparisonParsing
|
64a99e6 to
e173603
Compare
e173603 to
22683bd
Compare
22683bd to
1e0e644
Compare
1e0e644 to
80ff8a9
Compare
b3c69b6 to
bf7076a
Compare
80a14ec to
679b346
Compare
679b346 to
cb0c4b8
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 4451efa. Configure here.

Summary
Stack
Test plan
AI-assisted — Tool: Codex; model: OpenAI/GPT-5; version: unavailable.
Note
Medium Risk
Touches core positional parsing, derive codegen, and Go-generated binders; mistakes could mis-split repeated positionals or break compatibility detection, though coverage is broad.
Overview
Adds repeatable clause parsing: a command can own one separator-delimited positional group (e.g.
:::) whose inner arguments reset on each boundary instead of overwriting the previous instance.The Rust argv parser gains
Command::clause,Event::ClauseSeparator, and positional routing through clause args; separators stay syntax afterdouble_dash="automatic"unless protected by--. Help, completions, and KDL emission treat clause positionals like ordinary args for listings and usage (including the repeatable[separator …]…pattern).usagederive supports#[usage(clause, separator = "…")]onVec<T>(T: Args) with partial state, separator handling inapply, and per-instancebuild. Go mirrors the same behavior inargv, help, spec lowering, and generatedParse(per-instance validation and[]Clausefields). Conformance and a new corpus section assert matchingclausesmaps across interpreted Rust, compiled Rust, and Go.usage diffflags adding, removing, or changing a clause separator as breaking.Reviewed by Cursor Bugbot for commit 8b8f0ff. Bugbot is set up for automated code reviews on this repo. Configure here.