← board

class operator + named operators (Initialize/Finalize/Explicit/...)

Symptom

error: expected operator symbol after operator keyword — pxx parses only symbol operators (operator + etc.). Missing:

Impact

8 curated failures (tmoperator*, tassignmentoperator1, some toperator*). Skip-list reason: parser: named/class operator.

Note

Parse-side is P; the lifetime-event invocation (Initialize on entry, Finalize on scope exit) likely needs IR/lowering support → that part is a Track A ticket when reached.

Gate

make test + self-host byte-identical; burn the skip-list entries.

Slice 1 landed (2026-07-12, opus-p)

Named operators on RECORD/CLASS operands parse + dispatch:

Slice 2 landed (2026-07-12, opus-p)

operator Enumerator DISPATCHES in for-in: a class/record (or string-typed) container with a registered enumerator overload builds the same duck-typed MoveNext/Current[/Free] loop as GetEnumerator, over the operator call. Scalar operand types also register now (LongInt/String/...; String under both managed+frozen kinds), and conversion/unary operators enforce 1-param arity (binary = 2). Conformance: tforin5 + tassignmentoperator1 burn (3 total with toperator11). Tests: test_named_operators, test_operator_enumerator.

Remaining: