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