summaryrefslogtreecommitdiff
path: root/skills/chapter25-codex-notes.md
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-10-25 09:51:44 -0700
committerCliff Click <cliffc@acm.org>2026-10-25 09:51:44 -0700
commit4051ce7cd26314f01dc8c0237899a742e0ab2084 (patch)
tree29cb9b47e0461c34be1797ac36dd31e8f0b10c09 /skills/chapter25-codex-notes.md
parent5cfb046c8306a81ec40be82a59015f16f654fa93 (diff)
downloadSimple-4051ce7cd26314f01dc8c0237899a742e0ab2084.tar.gz
Simple-4051ce7cd26314f01dc8c0237899a742e0ab2084.zip
Fix ++x in methods
Fix ideaj setups
Diffstat (limited to 'skills/chapter25-codex-notes.md')
-rw-r--r--skills/chapter25-codex-notes.md8
1 files changed, 7 insertions, 1 deletions
diff --git a/skills/chapter25-codex-notes.md b/skills/chapter25-codex-notes.md
index 22c832f6..0e5a1957 100644
--- a/skills/chapter25-codex-notes.md
+++ b/skills/chapter25-codex-notes.md
@@ -11,7 +11,7 @@ The [completed split](../docs/chapter-split.md) maps the former combined 24/25
to 24a/24b (SCCP), 25 (incomplete types), 26 (construction), 27 (escape), and
28a/28b (modules/separate compilation). The old combined snapshots are retired.
Earlier entries below retain historical chapter numbers and test names; old
-Chapter 25 implementation references describe the lineage now in 25–28b, with
+Chapter 25 implementation references describe the lineage now in 25–28b, with
the complete implementation in 28b. Use current paths and teaching boundaries.
The construction/escape border remains open to semantic review.
Future work belongs in the [roadmap](../docs/roadmap.md), including the separate
@@ -65,6 +65,12 @@ For shared viewer work, read [the graph viewer notes](graph-viewer-codex-notes.m
## Mutability and chapter boundaries
+- Prefix updates must share ordinary name resolution: a method's bare field
+ name denotes memory, while constructor fields may still be local SSA values.
+ Do not update the declaration's scope slot before resolving that distinction.
+ Keep the returned value alive across Store folding; a narrow Store can remove
+ a conversion it does not need, while the prefix expression still needs it.
+
- Separate compilation retains the Modules parser's constructor local values
and escape fixes while adding saved IR and import ownership. Save owned nested
struct class declarations even when graph types omit them: callers need the