diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-16 09:46:18 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-16 09:46:18 +0000 |
| commit | 522742e9df7fc5ac596ce4aa53d41b31e4f6a030 (patch) | |
| tree | a00d9513f02995b418b442d9fb9396ea7e601ad3 /AGENTS/SUBSYSTEMS.md | |
| parent | 533d95d4b54ff2139468d38a7162e5ca3a40a7f6 (diff) | |
refactor(codegen): separate type checks from designator access
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS/SUBSYSTEMS.md')
| -rw-r--r-- | AGENTS/SUBSYSTEMS.md | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/AGENTS/SUBSYSTEMS.md b/AGENTS/SUBSYSTEMS.md index d1ae721..f693b1c 100644 --- a/AGENTS/SUBSYSTEMS.md +++ b/AGENTS/SUBSYSTEMS.md @@ -38,7 +38,9 @@ compile error (no extern is fabricated). Body emission is inverted: CodeGen inje `StmtEmitter` callback, and must restore its own insert point (and the exchanged ArrayTable) afterwards. -**User types** (`TypeSystem` + `Designator.cc`): TYPE declarations are top-level only +**User types** (`TypeSystem` + `Designator.cc` + `TypeCheckGen.cc`): +`Designator.cc` owns the type pre-pass and lvalue access; `TypeCheckGen.cc` owns +type admission and user-kind binary operators. TYPE declarations are top-level only and registered by `CodeGen::runTypePrePass` in two passes — `declareUserType` reserves every name (records become opaque named structs, so pointer pointees may forward-reference: `TYPE NodePtr = ^Node` before `TYPE Node`), then |
