advanced features / obligation stress

✓ 22 passing ○ 3 planned

Lessons

1 ✓ Passing
002 if else discharges then drops
2 ✓ Passing
003 if then discharges else drops strict
3 ✓ Passing
004 loop body discharges outer
4 ✓ Passing
005 nested loop inner discharges outer
5 ○ Planned
006 err branch leaks opened resource — OWED hole: an |err arm that leaves an opened connection unconsumed is refused.
6 ○ Planned
007 chain second err leaks first resource — OWED hole: a second |err in a chain that leaks the first opened resource is refused.
7 ✓ Passing
020 instance single discharger
8 ✓ Passing
021 instance no explicit free
9 ✓ Passing
022 disconnect before commit
10 ✓ Passing
023 disconnect before rollback
11 ✓ Passing
024 stale view after take
12 ✓ Passing
025 stale tx after commit
13 ✓ Passing
040 subflow drops obligation on input
14 ✓ Passing
042 read file no free
15 ✓ Passing
043 read stdin no free
16 ✓ Passing
044 taint stripped at untyped param
17 ✓ Passing
045 taint stripped at echo boundary
18 ✓ Passing
046 continuation after borrow auto discharges
19 ○ Planned
047 taint original reused after sanitizer — OWED hole: after a sanitizer consumes string<tainted!>, a later read of the original binding is refused — today it prints the tainted payload.
20 ✓ Passing
048 taint original printed beside sanitized
21 ✓ Passing
050 auto discharge lifo order
22 ✓ Passing
051 explicit then auto discharge
23 ✓ Passing
052 stale record field in interpolation
24 ✓ Passing
054 discharge a binding that never owed
25 ✓ Passing
055 bare state return aliases the borrow