compiler features / parser

✓ 81 passing ✗ 2 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 ✓ Passing
009 source with scope capture
9 ✓ Passing
010 module annotations
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 ✓ Passing
015 abstract impl
15 ✓ Passing
016 optional branches ignored
16 ✗ Failing
017 catchall end to end — backend-exec
17 ✓ Passing
018 multiline annotations
18 ✓ Passing
019 subflow multiline call
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 — must-fail-passed
25 ✓ Passing
030 comptime flows
26 ✓ Passing
031 annotations in ast
27 ✓ Passing
032 implicit source param
28 ✓ Passing
034 parser wrapper
29 ✓ Passing
035 circular imports
30 ✓ Passing
036 expression parameter
31 ✓ Passing
037 expression scope capture
32 ✓ Passing
038 implicit expr and source
33 ○ Planned
039 file source syntax — STATUS: PARSER WORK PENDING / FEATURE UNCERTAIN
34 ✓ Passing
040 expression string capture
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 ✓ Passing
046 implicit expression with semicolon
41 ✓ Passing
047 flow step brace is invocation not constructor
42 ✓ Passing
048 loop unhandled branch
43 ✓ Passing
049 parser runtime
44 ✓ Passing
050 expression parameter emit
45 ✓ Passing
051 subflow field shorthand
46 ✓ Passing
052 pattern branches
47 ✓ Passing
053 reject old tap syntax
48 ✓ Passing
054 inline source block args
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 ✓ Passing
059 reject tilde after pipe forward
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
120 reject square bracket phantom
83 ✓ Passing
121 module annotation above import
84 ✓ Passing
122 char literal paren in args
85 ✓ Passing
123 label on subflow rhs panics
86 ✓ Passing
124 if cond and dropped