aboutsummaryrefslogtreecommitdiff
path: root/tests/conformance/6-ownership
Commit message (Collapse)AuthorAgeFilesLines
* duplicate case labels are an error (b.2.15); unterminated string literal ↵Gravatar zinc 12 days2-2/+26
| | | | reported where it starts (b.2.11); an unreachable droppable cycle drops whole in one collection (6.15.3)
* prescan: guess an owned return only from a local declared from new/heap, not ↵Gravatar zinc 12 days1-0/+7
| | | | a global assigned one (fixes lsp self-check); xref baseline for the new writers
* tests: alias_scope expects the block-end message; plain_return now covers a ↵Gravatar zinc 12 days1-0/+8
| | | | forwarding owned return called early; direct owned return before its body is accepted
* analyzer: a .u (declared or inferred) function can't return a borrowed ↵Gravatar zinc 12 days4-0/+36
| | | | parameter or a value derived from one; fixtures
* analyzer: a back link (container's owner stored into it) stays a plain ↵Gravatar zinc 12 days9-0/+68
| | | | reference, fixing a compile hang on a<->b and a leak; ending an owner kills its owned children too (fixes use after reassigning a container); escape fixtures
* analyzer: infer .u from returns of fresh objects in the body (prescan guess, ↵Gravatar zinc 12 days2-0/+28
| | | | then checked as .u)
* analyzer: an outer owner moved into a deeper container can take it back ↵Gravatar zinc 12 days6-0/+94
| | | | (loop-built lists); block-end frees name the owner (why 9) in messages and LSP related info
* rt: gc_drops finalizes a droppable value that reaches itself (a cycle, or a ↵Gravatar zinc 13 days2-0/+30
| | | | drop capturing its own value), one per collection, each once; before, each waited for the other forever; spec 6.15.3, drop_gc_cycle.zc, drop_gc_self_capture.zc, design doc lists what landed
* destructors: nothing moves out of a value with a drop: pop on an array with ↵Gravatar zinc 13 days4-0/+48
| | | | a drop, or on an array field of a value with a drop, is error: a: can't move out of a value with drop (fields were already borrowed projections); spec 6.15.5, four conformance programs
* destructors: reassigning an m owner that still holds a value frees the old ↵Gravatar zinc 13 days3-2/+32
| | | | value first, running its drop (right side first, then the free, then the store), with hint: x: reassigning frees the old value; a new value that is part of the old one is an error; u, d and captured owners keep the leak error; the new value's size, leaf type and drop are recorded like a declaration's; spec 6.8.5, 6.15.2
* destructors: heap(v), drop(v, f) / v.drop(f) / v.drop = f, struct drop ↵Gravatar zinc 13 days13-0/+178
| | | | methods, collector drops after the sweep (once, resurrection), freed blocks forget their drop, temporaries drop at statement end with a hint, actor send check; o3: no collection inside a region (pending until the outermost exit), no drops set or ended inside o3; spec 3.11.6, 4.10.3-4, 6.15
* conformance: port the previous agent's suite, fix six expectations, add ↵Gravatar zinc 13 days31-0/+204
sections 5 to 8 and appendix b, known.txt, zc0 skips, wire into test.sh