aboutsummaryrefslogtreecommitdiff
path: root/src/checker.rs
diff options
context:
space:
mode:
authortslil <tslil@posteo.de>2026-04-28 13:00:17 +0100
committertslil <tslil@posteo.de>2026-04-28 14:16:10 +0100
commita237c97e0c2c019edcfdfa17371059cd9ce975d9 (patch)
treeff2181edd8a5d3ba2fa5d74119c4c3c517b97c16 /src/checker.rs
parentef3d7a3ce2d6686d37f1b2446d5de31b29f5cd00 (diff)
rework checking logic to revolve around "stuck" computations, the meaning of Hypothetical is now reserved for formal bindings
Diffstat (limited to 'src/checker.rs')
-rw-r--r--src/checker.rs9
1 files changed, 2 insertions, 7 deletions
diff --git a/src/checker.rs b/src/checker.rs
index 05ebca2..976b9fb 100644
--- a/src/checker.rs
+++ b/src/checker.rs
@@ -1,5 +1,5 @@
use crate::ast::*;
-use crate::checker_state::{CheckerError, CheckerState, ElementValue};
+use crate::checker_state::{CheckerError, CheckerState};
use tracing::{debug, instrument};
@@ -26,12 +26,7 @@ impl CheckerState {
Decl::Element { name, element, set } => {
let set = self.check_set(set.clone())?;
let element = self.check_element(element.clone().into(), &set)?;
- if matches!(element, ElementValue::Hypothetical(_)) {
- panic!(
- "invariant violation: from concrete values at the top level we returned a hypothetical value"
- );
- }
- self.add_element(name.clone(), element, set)
+ self.add_element(name.clone(), element.into(), set)
}
Decl::Signature { name, signature } => {
let signature = self.check_signature(signature.clone())?;