advanced features / phantom types

✓ 96 passing ✗ 22 failing ○ 6 planned

Lessons

1 ✓ Passing
006 cleanup consumed by disposal
2 ✓ Passing
007 use after disposal
3 ✓ Passing
008 obligation escapes via interface
4 ✗ Failing
009 universal wildcard metatype — output
5 ✗ Failing
010 module wildcard metatype — output
6 ✓ Passing
011 auto discharge multiple
7 ✓ Passing
012 auto discharge explicit with multiple
8 ✓ Passing
013 auto discharge explicit ok
9 ✓ Passing
014 scope for loop inner
10 ✓ Passing
015 scope for loop outer
11 ✓ Passing
016 scope nested
12 ○ Planned
017 scope label loop — Auto-dispose for obligations in @loop branches not implemented
13 ✓ Passing
018 auto discharge escaped obligation
14 ✗ Failing
019 auto discharge branch constructor — backend-exec
15 ○ Planned
020 auto discharge void event — TODO: Auto-dispose doesn't trigger before void event invocations
16 ✓ Passing
021 auto discharge multiple resources
17 ✓ Passing
022 if manual both branches
18 ✓ Passing
023 if auto both branches
19 ✓ Passing
024 if hybrid manual auto
20 ✓ Passing
025 auto discharge disabled
21 ✓ Passing
026 auto discharge warn
22 ✓ Passing
027 db transaction pattern
23 ✓ Passing
028 ambiguous without default
24 ✓ Passing
029 module qualified phantom states
25 ✗ Failing
030 taps with auto discharge — output
26 ✗ Failing
031 tap binding substitution — output
27 ✓ Passing
032 nested for scopes
28 ✓ Passing
033 phantom state mismatch
29 ✓ Passing
034 unknown phantom module
30 ✓ Passing
035 autodischarge prefers void
31 ✓ Passing
036 autodischarge no void candidate
32 ✓ Passing
037 default discharge must be void
33 ✓ Passing
038 cleanup obligation satisfied
34 ○ Planned
039 transition metatype — Feature: Transition metatype requires taps.eventToString and taps.branchToString which don't exist yet
35 ✓ Passing
040 undisposed nested obligation
36 ✓ Passing
041 auto discharge single
37 ✓ Passing
042 metatype binding scope
38 ✓ Passing
043 auto discharge none
39 ✓ Passing
044 for manual done ok
40 ✓ Passing
045 for manual each error
41 ✓ Passing
046 for auto done ok
42 ✓ Passing
047 nested if in for
43 ✓ Passing
048 nested for in if
44 ✓ Passing
049 default discharge annotation
45 ✗ Failing
050 union accepts either state — backend-exec
46 ✓ Passing
051 union with consume marker
47 ✓ Passing
052 escape field name mismatch
48 ✓ Passing
053 for loop obligation escape
49 ✓ Passing
054 optional branch obligation
50 ○ Planned
055 auto discharge cascade — Cascading auto-discharge: discharge creates new obligations that also need discharging
51 ✓ Passing
056 union per member consume marker
52 ✓ Passing
057 auto discharge emission parity
53 ✓ Passing
058 reject issue on input
54 ✓ Passing
059 reject consume on output
55 ✗ Failing
060 reject state mismatch on input — frontend
56 ✓ Passing
061 inline obligation cascade
57 ✓ Passing
062 reject identity struct mismatch
58 ✓ Passing
063 phantom state on primitive
59 ✓ Passing
064 reject phantom primitive mismatch
60 ✓ Passing
065 phantom compound unit
61 ✓ Passing
066 phantom literal suffix callsite
62 ✓ Passing
067 reject bare literal at phantom param
63 ✓ Passing
068 phantom obligation on primitive string
64 ✓ Passing
069 reject undischarged string obligation
65 ✓ Passing
070 auto discharge strict convention
66 ✓ Passing
071 aspire chain autodischarge
67 ✓ Passing
073 label fold borrow outer own
68 ✓ Passing
074 obligation carried through back edge
69 ✓ Passing
075 back edge drops obligation
70 ✗ Failing
076 obligation seed via consuming param — backend-exec
71 ✓ Passing
077 reject carry consume in for
72 ✗ Failing
078 reject dropped carried obligation — frontend
73 ✓ Passing
079 reject double consume carried
74 ✓ Passing
080 reject consume outside obligation in loop
75 ✓ Passing
081 container move i64 in loop
76 ✓ Passing
082 element obligation move in for
77 ✓ Passing
083 element obligation move through loop
78 ✗ Failing
084 nested loop carries outer obligation — backend-exec
79 ✗ Failing
085 obligation held across back edge — backend-exec
80 ✗ Failing
086 inline nested fold outer obligation — frontend
81 ✓ Passing
087 cross module qualified state unifies
82 ✓ Passing
088 reject bare state outside declaring module
83 ✓ Passing
089 taint tracking capability
84 ✓ Passing
090 auto discharge dotted disposer
85 ✗ Failing
091 auto discharge disable leaks through borrow — frontend
86 ✓ Passing
092 phantom direct return rechain drops obligation
87 ✓ Passing
093 flat phantom bind chain
88 ✓ Passing
094 bare return discard auto discharges
89 ✓ Passing
095 flow head obligation no continuation
90 ✓ Passing
096 obligation in record field
91 ✓ Passing
097 midchain unbound obligation leak
92 ✓ Passing
098 obligation record field under for each
93 ✓ Passing
099 obligation record field leak under subflow
94 ✓ Passing
100 obligation record field explicit discharge misdiagnosed under subflow
95 ✓ Passing
101 field narrowing discharge all
96 ✓ Passing
102 field narrowing drop remainder
97 ✓ Passing
103 partial destructure omits obligation
98 ✓ Passing
104 field narrowing three fields
99 ✓ Passing
105 narrowing keeps plain field
100 ✓ Passing
106 discharge out of order
101 ✓ Passing
107 destructure all then discharge
102 ✓ Passing
108 destructure may drop plain field
103 ✓ Passing
109 double discharge field
104 ✓ Passing
110 reject issue obligation in input
105 ✓ Passing
111 reject consume obligation in output
106 ○ Planned
112 reject redundant phantom qualification — reject redundant same-module phantom qualification (ratified design, unbuilt)
107 ✓ Passing
113 named capture obligation undischarged
108 ✓ Passing
114 produce obligation lost to continuation
109 ✓ Passing
115 branch payload obligation survives continuation
110 ✓ Passing
116 field narrowing mid chain
111 ✓ Passing
117 aliased obligation fields are proc business
112 ✗ Failing
118 conserving tor is not a disposal candidate — wrong-error
113 ✓ Passing
119 autodischarge use is invisible to koru100
114 ✗ Failing
120 unbound bare return obligation auto discharges — backend-exec
115 ✓ Passing
multiple cleanup paths
116 ✗ Failing
multiple resources cleanup — backend-exec
117 ✗ Failing
multiple resources partial cleanup — config-error
118 ✗ Failing
state variable wildcard — backend-exec
119 ✗ Failing
state variable constrained accepts — backend-exec
120 ✗ Failing
state variable constraint violation — wrong-error
121 ✗ Failing
state variable chaining — backend-exec
122 ○ Planned
phantom state mismatch — Feature: Phantom state mismatch detection
123 ✗ Failing
phantom state valid — frontend
124 ✓ Passing
multiple errors