aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-22 15:02:29 +0000
committer_ov4 <ov4@ov4.org>2026-10-22 15:21:11 +0000
commit353c38e23108856daa2c5d0e86443ac5136dcaa7 (patch)
treebd899dd541543d6fa875d534a7d571b2baa087b0 /include
parent9ef1cc2424e5afa21d3980b56046f5fb71bff89f (diff)
fix(codegen): skip IR verification after reported errors
Verify the module only when no error was reported, and let defineRecord skip bad fields and still set the record body, marking it Invalid so later missing-field lookups stay silent. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Diffstat (limited to 'include')
-rw-r--r--include/cps/TypeSystem.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/cps/TypeSystem.h b/include/cps/TypeSystem.h
index f8427f3..0c7c888 100644
--- a/include/cps/TypeSystem.h
+++ b/include/cps/TypeSystem.h
@@ -45,6 +45,7 @@ struct RecordFieldInfo {
struct RecordPayload {
std::vector<std::pair<std::string, RecordFieldInfo>> Fields; // declaration order
+ bool Invalid = false; // a field was rejected and skipped
const RecordFieldInfo *findField(const std::string &Name) const;
};