diff options
| author | tslil <tslil@posteo.de> | 2026-04-24 14:05:05 +0100 |
|---|---|---|
| committer | tslil <tslil@posteo.de> | 2026-04-27 08:48:40 +0100 |
| commit | 0ff631e7a43afa46be22f8221cc3149a7184a9ce (patch) | |
| tree | 8e5b855efd4b5192d088d5858a804dfd76e42153 | |
| parent | 36a9377163ecd3300f7b9ad3c4d8e93d97ce41ff (diff) | |
refactor error to be clearer
| -rw-r--r-- | src/checker_set.rs | 29 | ||||
| -rw-r--r-- | src/checker_state.rs | 4 |
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, |
