diff options
| author | tslil <tslil@posteo.de> | 2026-04-28 14:24:06 +0100 |
|---|---|---|
| committer | tslil <tslil@posteo.de> | 2026-04-28 14:36:19 +0100 |
| commit | ecc2c04edbcfdd097377683c28b92cd10e437d35 (patch) | |
| tree | e5d2584e2b5de68992e866738acd0ad77a30c2df /src/checker.rs | |
| parent | a237c97e0c2c019edcfdfa17371059cd9ce975d9 (diff) | |
move assert unbound to only top-level decls to allow shadowing
Diffstat (limited to 'src/checker.rs')
| -rw-r--r-- | src/checker.rs | 7 |
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())); } }?; |
