A field marked @owns(PhysShape) holds a handle its record owns. A function that releases one owned field of a record (body_free(w, s.body)) and neither releases nor hands on another owned field of the same record type (s.shape) gives the first back and loses the second - the phys_remove bug, at compile time. ludic deps --resources (or --owned) lists them; owned_leaks is a number --check ratchets. A test: the function that frees a solid's body alone is the one found; the one that frees both is not. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| backend | ||
| check | ||
| frontend | ||
| golden | ||
| support | ||
| tests | ||
| ludicc.seed.ll | ||
| ludicc.win.seed.ll | ||
| main.ludic | ||