aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortslil <tslil@posteo.de>2026-04-24 14:05:05 +0100
committertslil <tslil@posteo.de>2026-04-27 08:48:40 +0100
commit0ff631e7a43afa46be22f8221cc3149a7184a9ce (patch)
tree8e5b855efd4b5192d088d5858a804dfd76e42153
parent36a9377163ecd3300f7b9ad3c4d8e93d97ce41ff (diff)
refactor error to be clearer
-rw-r--r--src/checker_set.rs29
-rw-r--r--src/checker_state.rs4
2 files changed, 18 insertions, 15 deletions
diff --git a/src/checker_set.rs b/src/checker_set.rs
index a14ac9a..24327cf 100644
--- a/src/checker_set.rs
+++ b/src/checker_set.rs
@@ -45,7 +45,10 @@ impl CheckerState {
fn _check_literal_set_helper(&self, claimed: &Set, should_be: Set) -> Result<(), CheckerError> {
if !self.set_equal(claimed, &should_be) {
- Err(CheckerError::WrongSetForElement(claimed.clone(), should_be))
+ Err(CheckerError::WrongSetForElement {
+ claimed: claimed.clone(),
+ real: should_be,
+ })
} else {
Ok(())
}
@@ -80,10 +83,10 @@ impl CheckerState {
// we have previously done the work to discover the type of
// this element, so what we're claiming now must match!
if !self.set_equal(set, &lookup.set) {
- return Err(CheckerError::WrongSetForElement(
- set.clone(),
- lookup.set.clone(),
- ));
+ return Err(CheckerError::WrongSetForElement {
+ claimed: set.clone(),
+ real: lookup.set.clone(),
+ });
}
Ok(lookup.element.clone())
}
@@ -149,10 +152,10 @@ impl CheckerState {
// enforce the correct typing of the claimed result
if !self.set_equal(set, field_set) {
- return Err(CheckerError::WrongSetForElement(
- set.clone(),
- field_set.clone(),
- ));
+ return Err(CheckerError::WrongSetForElement {
+ claimed: set.clone(),
+ real: field_set.clone(),
+ });
}
// enforce the correct typing of the element
@@ -185,10 +188,10 @@ impl CheckerState {
// enforce the correct typing of the claimed result
if !self.set_equal(set, owner_set) {
- return Err(CheckerError::WrongSetForElement(
- set.clone(),
- owner_set.clone(),
- ));
+ return Err(CheckerError::WrongSetForElement {
+ claimed: set.clone(),
+ real: owner_set.clone(),
+ });
}
// enforce the correct typing of the element
diff --git a/src/checker_state.rs b/src/checker_state.rs
index c4b4a3a..30f83be 100644
--- a/src/checker_state.rs
+++ b/src/checker_state.rs
@@ -13,8 +13,8 @@ pub enum CheckerError {
Rebinding(String),
#[display("The following functionality is unimplemented: {_0}")]
Unimplemented(String),
- #[display("Element claimed to belong to {_0} but actually belongs to {_1}")]
- WrongSetForElement(Set, Set),
+ #[display("Element claimed to belong to {claimed} but actually belongs to {real}")]
+ WrongSetForElement { claimed: Set, real: Set },
#[display("Element {element} does belong to set {claimed}: {reason}")]
ElementDoesNotBelong {
element: Element,