advanced features / stdlib
✓ 71 passing ○ 4 planned
Lessons
1 ✓
Passing
001 std if
2 ✓
Passing 002 stdlib if
3 ✓
Passing 003 stdlib if scoped
4 ✓
Passing 010 std for basic
5 ✓
Passing 011 std for nested
6 ✓
Passing 018 template define
7 ✓
Passing 019 template lookup
8 ✓
Passing 020 if inline codegen
9 ✓
Passing 021 for zero overhead
10 ✓
Passing 022 for outer scope
11 ✓
Passing 023 for pipeline
12 ✓
Passing 024 for deeply nested
13 ✓
Passing 025 if deeply nested
14 ✓
Passing 026 for subflow
15 ✓
Passing 027 capture basic
16 ✓
Passing 028 capture multi
17 ✓
Passing 029 template lookup in transform
18 ✓
Passing 030 println basic
19 ✓
Passing 031 println types
20 ✓
Passing 032 println blk basic
21 ✓
Passing 033 println koru scope
22 ✓
Passing 034 capture nested
23 ○
Planned 035 capture multi field — Multi-field captured updating multiple captures: captured { inner: 42, outer: 99 }
24 ✓
Passing 036 capture nested qualified
25 ✓
Passing 037 nested if simple
26 ✓
Passing 039 if inside for
27 ✓
Passing 040 for inside if
28 ✓
Passing 041 triple nested
29 ✓
Passing 042 capture if for multi
30 ✓
Passing 043 const basic
31 ✓
Passing 044 const simple
32 ✓
Passing 045 capture array index
33 ✓
Passing 046 capture existing struct
34 ✓
Passing 047 if subflow enclosing branches
35 ✓
Passing 048 reject for terminal each
36 ✓
Passing 049 println conditionals
37 ✓
Passing 050 transform impl pattern
38 ✓
Passing 053 println blk conditionals
39 ✓
Passing 054 transform order
40 ✓
Passing 055 nested for simple
41 ✓
Passing 057 capture 2d array index
42 ✓
Passing 060 fs read lines
43 ✓
Passing 070 for with binding
44 ✓
Passing 081 ecology pass ran mechanism
45 ○
Planned 082 ecology custom transform — ECOLOGY: User-defined transforms should work like stdlib
46 ✓
Passing 090 rings basic
47 ✓
Passing 091 print float format
48 ✓
Passing 092 print blk void chain multiline
49 ✓
Passing 093 print blk void chain inline second
50 ✓
Passing 094 std if nested
51 ✓
Passing 098 capture nested site
52 ✓
Passing 100 print blk raw posix variant
53 ✓
Passing 101 rings proto element
54 ✓
Passing 103 rings dequeue none
55 ✓
Passing 104 rings missing capacity
56 ✓
Passing 105 rings capacity not pow2
57 ✓
Passing 106 rings two elements refused
58 ✓
Passing 107 rings undeclared name
59 ✓
Passing 108 rings unknown element
60 ✓
Passing 109 rings borrow element
61 ✓
Passing 110 rings supervised full retry
62 ✓
Passing 111 rings supervised full exhausted
63 ✓
Passing 112 rings supervised none retry
64 ○
Planned 113 rings supervised reenter ringop — OWED: supervise a std/rings verb directly — v1 supervises same-module children only; cross-module fold re-entry (and transform-tor re-entry inside generated steps) is the owed machinery.
65 ✓
Passing 114 const field missing comma refused
66 ✓
Passing 115 const field nameless entry refused
67 ✓
Passing 116 const field typeless entry refused
68 ✓
Passing 117 const field duplicate name refused
69 ✓
Passing 118 const field bare entry refused
70 ✓
Passing 119 const field list comma and newline
71 ✓
Passing 171 rings phantom element refused
72 ○
Planned 172 rings enclosing full arm fold — OWED: enclosing-arm claim — an unhandled branch resolves outward to the nearest compatible same-named arm. Needs a post-transform coverage-time pass (transform-minted `__ring_*` decls are invisible to the frontend desugar — compiler.kz:1259).
73 ✓
Passing 173 rings enclosing arm payload mismatch
74 ✓
Passing 175 rings full arm
75 ✓
Passing 176 rings owned leaf element refused