diff --git a/CHANGELOG.md b/CHANGELOG.md index 000f1e3..9919e4d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/). ## [Unreleased] - ReleaseDate +- Make `BoxPredicate::find_case` use the inner `find_case` implementation + ## [3.1.3] - 2024-12-19 ### Features diff --git a/src/boxed.rs b/src/boxed.rs index 2b96e0c..2e473d9 100644 --- a/src/boxed.rs +++ b/src/boxed.rs @@ -12,7 +12,6 @@ use std::fmt; use crate::reflection; -use crate::utils; use crate::Predicate; /// `Predicate` that wraps another `Predicate` as a trait object, allowing @@ -73,7 +72,7 @@ where } fn find_case<'a>(&'a self, expected: bool, variable: &Item) -> Option> { - utils::default_find_case(self, expected, variable) + self.0.find_case(expected, variable) } } @@ -125,4 +124,18 @@ mod test { let p = predicate::always().boxed(); p.eval("4"); } + + #[test] + fn boxed_find_case() { + let p1 = predicate::gt(5); + let p2 = p1.boxed(); + match (p1.find_case(false, &4), p2.find_case(false, &4)) { + (Some(c1), Some(c2)) => { + assert_eq!(format!("{c1:?}"), format!("{c2:?}")); + } + _ => { + panic!(); + } + } + } }