diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-30 14:33:33 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-30 14:33:33 +0000 |
| commit | 9b2d82dadbb465de71985a8db3aa8df454579b72 (patch) | |
| tree | 686703c7f74565baad63f368b90124f8577c4616 /AGENTS/SUBSYSTEMS/CLASS_LIFETIME.md | |
| parent | 0cf54b4f77ccf8376341950b02ceb7c1d1268ed7 (diff) | |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS/SUBSYSTEMS/CLASS_LIFETIME.md')
| -rw-r--r-- | AGENTS/SUBSYSTEMS/CLASS_LIFETIME.md | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/AGENTS/SUBSYSTEMS/CLASS_LIFETIME.md b/AGENTS/SUBSYSTEMS/CLASS_LIFETIME.md index 19be0aa..0b12ea1 100644 --- a/AGENTS/SUBSYSTEMS/CLASS_LIFETIME.md +++ b/AGENTS/SUBSYSTEMS/CLASS_LIFETIME.md @@ -21,8 +21,9 @@ Part of the [subsystem notes](../SUBSYSTEMS.md). Builds on [classes](CLASSES.md) - Assignment-only `NewExprAST` uses checked memory-library allocation (at least one byte for method-only classes), zero initialization and construction, then rebinds reference slots or copies into other destinations. -- Ordinary assignment invokes an exact member OPERATOR<- when available, otherwise it - copies. +- Ordinary assignment prefers an exact member OPERATOR<-, then permitted BYVAL + conversions. Without an operator, a marked converting NEW produces a fresh value; + replacing a non-STRING class this way releases its previous value before transfer. - Heap objects require explicit keyword DELETE; INHERITS/SUPER remain unsupported. ## Destruction @@ -65,7 +66,7 @@ Part of the [subsystem notes](../SUBSYSTEMS.md). Builds on [classes](CLASSES.md) before local handlers, while ordinary objects remain function-scoped. - Function-result method receivers are materialized by the same path as operator receivers. -- Assignment first selects an exact member OPERATOR<-; without one, STRING-bearing +- Assignment first selects a member OPERATOR<- with exact parameters preferred; without one, STRING-bearing aggregate assignment clones string fields from lvalues or transfers them from rvalues, releasing the target's old string fields without invoking the enclosing class destructor; other classes are assigned bitwise. |
