diff options
Diffstat (limited to 'src/checker.rs')
| -rw-r--r-- | src/checker.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/checker.rs b/src/checker.rs index 3ebcb4d..1760c0e 100644 --- a/src/checker.rs +++ b/src/checker.rs @@ -1,5 +1,5 @@ use crate::ast::*; -use crate::checker_state::{CheckerError, CheckerState}; +use crate::checker_state::{CheckerError, CheckerState, ElementValue}; use tracing::{debug, instrument}; @@ -25,7 +25,12 @@ impl CheckerState { Decl::Element { name, element, set } => { let set = self.check_set(set)?; - let element = self.check_element(element, &set)?; + 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) } Decl::Signature { .. } => { |
