aboutsummaryrefslogtreecommitdiff
path: root/src/checker.rs
diff options
context:
space:
mode:
authortslil <tslil@posteo.de>2026-04-27 14:17:53 +0100
committertslil <tslil@posteo.de>2026-04-27 15:07:51 +0100
commit250078ef4955f46e93882b9383e3443d50f8d61b (patch)
treea480efd0c7c780efa51ecfa5001df1d4f5654c48 /src/checker.rs
parent47bb6052919a4266cf47f47c6e6d387baf6e39b0 (diff)
refactor equality checking and fields as we start to build towards signatures
Diffstat (limited to 'src/checker.rs')
-rw-r--r--src/checker.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/checker.rs b/src/checker.rs
index 1760c0e..05ebca2 100644
--- a/src/checker.rs
+++ b/src/checker.rs
@@ -19,12 +19,12 @@ impl CheckerState {
debug!(%self, %decl);
match decl {
Decl::Set { name, set } => {
- let set = self.check_set(set)?;
+ let set = self.check_set(set.clone())?;
self.add_set(name, set)
}
Decl::Element { name, element, set } => {
- let set = self.check_set(set)?;
+ let set = self.check_set(set.clone())?;
let element = self.check_element(element.clone().into(), &set)?;
if matches!(element, ElementValue::Hypothetical(_)) {
panic!(
@@ -33,8 +33,9 @@ impl CheckerState {
}
self.add_element(name.clone(), element, set)
}
- Decl::Signature { .. } => {
- return Err(CheckerError::Unimplemented("signatures".to_string()));
+ Decl::Signature { name, signature } => {
+ let signature = self.check_signature(signature.clone())?;
+ self.add_signature(name, signature)
}
Decl::Instance { .. } => {
return Err(CheckerError::Unimplemented("instances".to_string()));