advanced features / phantom types
✓ 54 passing ✗ 10 failing ○ 5 planned
Lessons
1 ✗
Failing
001 module qualified phantom states — backend-exec
2 ✓
Passing 002 phantom state mismatch
3 ✓
Passing 003 unknown phantom module
4 ✓
Passing 004 cleanup obligation escape
5 ✓
Passing 005 cleanup obligation satisfied
6 ✓
Passing 006 cleanup consumed by disposal
7 ✓
Passing 007 use after disposal
8 ✗
Failing 008 obligation escapes via interface — backend-exec
9 ✓
Passing 009 universal wildcard metatype
10 ✓
Passing 010 module wildcard metatype
11 ✓
Passing 011 auto discharge multiple
12 ○
Planned 011 transition metatype — Feature: Transition metatype requires taps.eventToString and taps.branchToString which don't exist yet
13 ✓
Passing 012 auto discharge explicit with multiple
14 ✓
Passing 012 auto discharge none
15 ✓
Passing 013 auto discharge explicit ok
16 ✓
Passing 014 scope for loop inner
17 ✓
Passing 015 scope for loop outer
18 ✓
Passing 016 scope nested
19 ○
Planned 017 scope label loop — Auto-dispose for obligations in @loop branches not implemented
20 ✗
Failing 018 auto discharge escaped obligation — backend-exec
21 ✓
Passing 019 auto discharge branch constructor
22 ✓
Passing 019 for manual done ok
23 ○
Planned 020 auto discharge void event — TODO: Auto-dispose doesn't trigger before void event invocations
24 ✓
Passing 020 for manual each error
25 ✓
Passing 021 auto discharge multiple resources
26 ✓
Passing 021 for auto done ok
27 ✓
Passing 022 if manual both branches
28 ✓
Passing 023 if auto both branches
29 ✓
Passing 024 if hybrid manual auto
30 ✓
Passing 025 auto discharge disabled
31 ✓
Passing 025 nested if in for
32 ✓
Passing 026 auto discharge warn
33 ✓
Passing 026 nested for in if
34 ✓
Passing 027 db transaction pattern
35 ✓
Passing 027 default discharge annotation
36 ✓
Passing 028 ambiguous without default
37 ✗
Failing 028 optional branch obligation — backend-exec
38 ✓
Passing 029 auto discharge void chain
39 ✓
Passing 030 taps with auto discharge
40 ✓
Passing 031 tap binding substitution
41 ✗
Failing 032 nested for scopes — backend-exec
42 ✓
Passing 035 autodischarge prefers void
43 ✓
Passing 036 autodischarge no void candidate
44 ✓
Passing 037 default discharge must be void
45 ✓
Passing 040 undisposed nested obligation
46 ✓
Passing 041 auto discharge single
47 ✓
Passing 042 metatype binding scope
48 ✗
Failing 050 union accepts either state — backend-exec
49 ✗
Failing 051 union with consume marker — backend-exec
50 ✗
Failing 052 escape field name mismatch — backend-exec
51 ✓
Passing 053 for loop obligation escape
52 ✓
Passing 054 scope annotation not loop
53 ○
Planned 055 auto discharge cascade — Cascading auto-discharge: discharge creates new obligations that also need discharging
54 ✗
Failing 056 union per member consume marker — backend-exec
55 ✓
Passing 057 auto discharge emission parity
56 ✓
Passing 058 reject issue on input
57 ✓
Passing 059 reject consume on output
58 ✓
Passing 060 reject state mismatch on input
59 ✓
Passing obligation lost at boundary
60 ✓
Passing multiple cleanup paths
61 ✓
Passing multiple resources cleanup
62 ✓
Passing multiple resources partial cleanup
63 ✓
Passing state variable wildcard
64 ✓
Passing state variable constrained accepts
65 ✓
Passing state variable constraint violation
66 ✓
Passing state variable chaining
67 ○
Planned phantom state mismatch — Feature: Phantom state mismatch detection
68 ✗
Failing phantom state valid — backend-exec
69 ✓
Passing multiple errors