aboutsummaryrefslogtreecommitdiff
path: root/src/checker.rs
diff options
context:
space:
mode:
authortslil <tslil@posteo.de>2026-04-28 14:24:06 +0100
committertslil <tslil@posteo.de>2026-04-28 14:36:19 +0100
commitecc2c04edbcfdd097377683c28b92cd10e437d35 (patch)
treee5d2584e2b5de68992e866738acd0ad77a30c2df /src/checker.rs
parenta237c97e0c2c019edcfdfa17371059cd9ce975d9 (diff)
move assert unbound to only top-level decls to allow shadowing
Diffstat (limited to 'src/checker.rs')
-rw-r--r--src/checker.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/checker.rs b/src/checker.rs
index 976b9fb..da4463c 100644
--- a/src/checker.rs
+++ b/src/checker.rs
@@ -19,20 +19,25 @@ impl CheckerState {
debug!(%self, %decl);
match decl {
Decl::Set { name, set } => {
+ self.assert_unbound_set(name)?;
let set = self.check_set(set.clone())?;
self.add_set(name, set)
}
Decl::Element { name, element, set } => {
+ self.assert_unbound_element(name)?;
let set = self.check_set(set.clone())?;
let element = self.check_element(element.clone().into(), &set)?;
self.add_element(name.clone(), element.into(), set)
}
Decl::Signature { name, signature } => {
+ self.assert_unbound_signature(name)?;
let signature = self.check_signature(signature.clone())?;
self.add_signature(name, signature)
}
- Decl::Instance { .. } => {
+ Decl::Instance { name, .. } => {
+ self.assert_unbound_instance(name)?;
+
return Err(CheckerError::Unimplemented("instances".to_string()));
}
}?;