aboutsummaryrefslogtreecommitdiff
path: root/src/checker.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/checker.rs')
-rw-r--r--src/checker.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/checker.rs b/src/checker.rs
index aefbb02..dc3dc3c 100644
--- a/src/checker.rs
+++ b/src/checker.rs
@@ -35,10 +35,15 @@ impl CheckerState {
let signature = self.check_signature(signature.clone())?;
self.add_signature(name, signature)
}
- Decl::Instance { name, .. } => {
+ Decl::Instance {
+ name,
+ instance,
+ signature,
+ } => {
self.assert_unbound_instance(name)?;
-
- return Err(CheckerError::Unimplemented("instances".to_string()));
+ let signature = self.check_signature(signature.clone())?;
+ let instance = self.check_instance(instance.clone(), &signature)?;
+ self.add_instance(name.clone(), instance.into(), signature)
}
}?;
}