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
t27c: six silent misreads -- a colon inside a field type, and @as to a slice type #5968
tri misread --list (after #5947) reports 41 spec-shape pairs. 35 are refused by typecheck; 6 are silent: the spec parses, typechecks and generates output its backend cannot parse.
spec
shape
construct in the spec
port/tools/wp18_gate_selfconsistent_selftest
rust Vec<>
@as([]u8, @intToPtr(i)), line 125
ar/coa_planning
rust pub a: Xb:Y,
missing , after verification_status: Trit, line 42
git/schema
same
map type env: [str: str], line 54
git/operations
same
inherits Options from use git::schema
tri/agent/governance_agent
same
field : T # note,: the # comment runs to end of line and eats the ,, so the next field is glued into the type
tri/utils/help
same
same # form, lines 14-16
Two compiler defects behind them:
A : inside a struct field's type (after removing :: paths). A field with no , after it, whether the comma is missing or sits inside a trailing # comment, swallows the declarations after it into its type: pub identity: Stringsacred_score:Floatgeneration:Int. Two fields disappear, and parse and typecheck accept it. A map type [K: V] has the same footprint (Vec<str:str>). The corpus holds 144 fields with a colon in their type; 121 are :: paths, and 23 carry a lone :.
@as(T, x) with a slice or array type T. In argument position the parser reads []u8 as an empty array literal, and every backend loses the type: gen-zig @as(.{}, x), gen-c ({ 0 })(x), gen-rust (x as Vec<>). [4]u8 becomes @as(.{ 4 }, x) / Vec<4>. 3 specs use it (wp18, jit/jit, tri/pipeline/builder).
Plan: typecheck refuses both and names the line; parse is unchanged, so generation is unchanged. Rewrite the six specs, plus the builder test line, in t27 where t27 can say it, and ledger the rest. Report the silent count before (6) and after.
Activity
docs(now): t27c refuses a colon inside a field type and a slice cast (C…
fix(t27c): refuse a colon inside a field type and @as to a slice type…
fix(t27c): refuse a Rust match block the parser kept as text; rewrite…
fix(specs): #5968 comment-swallowed commas in swarm_agents/autonomous…