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