compiler features / parser
✓ 138 passing ✗ 19 failing ○ 3 planned
Lessons
1 ✓
Passing
lenient multiple errors
2 ✓
Passing 001 event multiline shape
3 ✓
Passing 003 conditional imports
4 ✓
Passing 004 branch when clauses
5 ✓
Passing 006 flow checker validation
6 ✓
Passing 007 flow checker missing else
7 ✓
Passing 008 tap nested continuation
8 ✗
Failing 009 source with scope capture — ast-mismatch
9 ✗
Failing 010 module annotations — ast-mismatch
10 ✓
Passing 011 optional branch catchall
11 ✓
Passing 012 missing required branch
12 ✓
Passing 013 void event chaining
13 ✓
Passing 014 void chaining nested
14 ✗
Failing 015 abstract impl — backend-exec
15 ✓
Passing 016 optional branches ignored
16 ✗
Failing 017 catchall end to end — backend-exec
17 ✓
Passing 018 multiline annotations
18 ✗
Failing 019 subflow multiline call — frontend
19 ✓
Passing 020 transitive imports
20 ✓
Passing 022 invocation parentheses rules
21 ✓
Passing 023 pipeline chain depth
22 ○
Planned 024 source scope capture — Dubious source-block-type-tag syntax — parked pending a design decision.
23 ✓
Passing 026 template interpolation
24 ✗
Failing 029 transform requires comptime — config-error
25 ✓
Passing 030 comptime flows
26 ✓
Passing 031 annotations in ast
27 ✗
Failing 032 implicit source param — frontend
28 ✓
Passing 034 parser wrapper
29 ✗
Failing 035 circular imports — backend-exec
30 ✓
Passing 036 expression parameter
31 ✓
Passing 037 expression scope capture
32 ✗
Failing 038 implicit expr and source — frontend
33 ○
Planned 039 file source syntax — STATUS: PARSER WORK PENDING / FEATURE UNCERTAIN
34 ✗
Failing 040 expression string capture — backend
35 ✓
Passing 041 expression backslash escape
36 ✓
Passing 042 orisha pattern
37 ✓
Passing 043 inline continuation rejected
38 ✓
Passing 044 source block with branches
39 ✓
Passing 045 source block in pipeline
40 ✗
Failing 046 implicit expression with semicolon — backend
41 ✓
Passing 047 flow step brace is invocation not constructor
42 ✓
Passing 048 loop unhandled branch
43 ✗
Failing 049 parser runtime — backend-exec
44 ✓
Passing 050 expression parameter emit
45 ✓
Passing 051 subflow field shorthand
46 ✓
Passing 052 pattern branches
47 ✗
Failing 053 reject old tap syntax — error-output
48 ✗
Failing 054 inline source block args — ast-mismatch
49 ✓
Passing 056 cross module comptime dispatch
50 ○
Planned 057 cross module comptime callsite fields — Cross-module comptime continuation missing raw AST fields (invocation, item) — emitArgs() injects program/allocator by name but has no mechanism for *const Invocation/*const Item pointers that transform events require
51 ✓
Passing 058 cross module comptime return type
52 ✗
Failing 059 reject tilde after pipe forward — error-output
53 ✓
Passing 060 proc abstract override
54 ✓
Passing 061 reject zig struct syntax
55 ✓
Passing 062 reject empty brace payload
56 ✓
Passing 063 reject single field braces
57 ✓
Passing 064 parser drops second call after void
58 ✓
Passing 065 reject inline flow in proc
59 ✓
Passing 066 reject pipe forward body on next line
60 ✓
Passing 070 reject terminal before effect at decl
61 ✓
Passing 071 reject terminal before effect at dispatch
62 ✓
Passing 072 effect branch simple decl
63 ✓
Passing 073 effect branch only no terminal
64 ✓
Passing 074 effect branch resume type
65 ✓
Passing 075 effect branch consumer dispatch
66 ✓
Passing 076 optional effect branch decl
67 ✓
Passing 077 effect catchall dispatch
68 ✓
Passing 078 reject redundant when parens
69 ✓
Passing 079 effect branch resume expression
70 ✓
Passing 080 body position expressions
71 ✓
Passing 081 reject bare terminal catchall discard
72 ✓
Passing 082 reject bare effect catchall discard
73 ✓
Passing 083 reject metatype catchall full discard
74 ✓
Passing 084 reject when only required terminal branch
75 ✓
Passing 085 reject when only required effect branch
76 ✓
Passing 086 accept when only optional effect branch
77 ✓
Passing 087 phantom literal suffix
78 ✓
Passing 088 reject redundant punning call site
79 ✓
Passing 089 reject redundant punning path
80 ✓
Passing 090 reject redundant punning constructor
81 ✓
Passing 091 explicit label required when not punnable
82 ✓
Passing 092 effect multi arm decl indented
83 ✓
Passing 093 effect multi arm decl single line
84 ✓
Passing 094 reject bare arg name mismatch
85 ✓
Passing 095 reject bare literal arg
86 ✓
Passing 096 reject bare path name mismatch
87 ✓
Passing 120 reject square bracket phantom
88 ✓
Passing 121 module annotation above import
89 ✓
Passing 122 char literal paren in args
90 ✓
Passing 123 label on subflow rhs panics
91 ✓
Passing 124 if cond and dropped
92 ✓
Passing 125 panic branch decl
93 ✓
Passing 126 panic effect branch decl
94 ✓
Passing 127 panic branch synthesized
95 ✓
Passing 128 reject bare panic marker
96 ✓
Passing 129 reject panic dup name
97 ✓
Passing 130 panic branch strict flag
98 ✓
Passing 131 reject single continuation branch with payload
99 ✓
Passing 132 reject arrow in continuation branch decl
100 ✓
Passing 133 reject bare const decl dot k
101 ✓
Passing 134 effect arm indent must align
102 ✓
Passing 135 effect arms exclusive with resume type
103 ✓
Passing 136 effect arms never nest effects
104 ✓
Passing 137 effect unit payload spelled by omission
105 ✓
Passing 138 reject empty ctor braces
106 ✓
Passing 139 inline block close then branch
107 ✗
Failing 140 variant selector on transform swallowed — ast-mismatch
108 ✓
Passing 141 reject branches off bodiless branch
109 ✓
Passing 142 capture inflow compiler annotation
110 ✓
Passing 144 single field multi branch advises identity
111 ✓
Passing 145 reject deferred branch decl
112 ✓
Passing 146 reject deref continuation
113 ✓
Passing 147 destructure field must exist in payload
114 ✓
Passing 148 destructure valid fields
115 ✓
Passing 149 reject single field bare return record
116 ✓
Passing 150 reject single field effect resume record
117 ✓
Passing 151 pointfree chain threads whole input
118 ✓
Passing 152 pointfree choke catches failing stage
119 ✓
Passing 153 pointfree choke record body
120 ✓
Passing 154 pun scalar bind inline
121 ✓
Passing 155 pun required no match
122 ✓
Passing 156 pun type mismatch
123 ✓
Passing 157 pun effect payload bind
124 ✓
Passing 158 transform continuation position panic
125 ✓
Passing 159 annotation error keeps rest of file
126 ✓
Passing 160 annotation error locates the entry
127 ✓
Passing 161 diagnostic never shows injected source
128 ✓
Passing 162 reject pub var decl dot k
129 ✓
Passing 163 reject variant tag on tor decl
130 ✗
Failing 164 ast locations are file relative — ast-mismatch
131 ✓
Passing 165 reject unknown label on implicit slot callee
132 ✓
Passing 166 fold prefix drops exit arm capture
133 ✓
Passing 167 midflow fold reads outer binding
134 ✓
Passing 168 source block opens subflow definition line
135 ✓
Passing 169 chain after multiline source block on definition line
136 ✗
Failing 170 fold prefix drops effect handlers — backend-exec
137 ✓
Passing 171 double slash in midchain string
138 ✗
Failing 172 chain bind threads by pun — output
139 ✓
Passing 173 rebind in chain leaks zig error
140 ✓
Passing 174 multiline chain eats following arms
141 ✓
Passing 175 thread arrives as subject
142 ✓
Passing 176 thread binds by type not position
143 ✓
Passing 177 subflow chain runs every step
144 ✓
Passing 178 listed body line is refused dot k
145 ✓
Passing 179 listed body line is refused dot kz
146 ✓
Passing 180 thread cannot elect between slots
147 ✓
Passing 181 thread has no home in next stage
148 ✓
Passing 182 arrow terminus after binderless chain
149 ✓
Passing 183 bare arrow terminus without bind is refused
150 ✓
Passing 184 last step return satisfies flow return
151 ✓
Passing 185 chain arrow terminus without any bind is refused
152 ✓
Passing 186 chain ends on wrong return type
153 ✓
Passing 187 chain ends on step producing nothing
154 ✓
Passing 188 threaded chain gets synthesized terminus
155 ✓
Passing 189 effect bearing step keeps its return bind
156 ✓
Passing 190 top level multiline chain carries its arms
157 ✓
Passing 191 unbound branch payload threads by type
158 ✓
Passing 192 unbound effect payload threads by type
159 ✓
Passing 193 multiline chain carries its effect arms
160 ✓
Passing 194 durable bind threads by type through subtree