src/instance.rs

branch
dev
changeset 135
087c60877100
parent 134
d65377920b00
--- a/src/instance.rs	Mon May 12 21:26:04 2025 -0500
+++ b/src/instance.rs	Mon May 12 21:36:41 2025 -0500
@@ -110,20 +110,15 @@
 {
     /// Decomposes self according to `decomposer`, and evaluate `f` on the result.
     /// Consumes self.
-    fn eval_decompose<'b, R>(self, f: impl FnOnce(D::Decomposition<'b>) -> R) -> R
+    fn eval_decompose<'c, R>(self, f: impl FnOnce(D::Decomposition<'c>) -> R) -> R
     where
-        R: 'b,
-        X: 'b,
-        Self: 'b;
+        X: 'c;
 
     /// Does a light decomposition of self `decomposer`, and evaluates `f` on the result.
     /// Does not consume self.
-    fn eval_ref_decompose<'b, 'c, R, F>(&'b self, f: F) -> R
+    fn eval_ref_decompose<'c, R>(&self, f: impl FnOnce(D::Reference<'c>) -> R) -> R
     where
-        X: 'c,
-        Self: 'b,
-        R: 'b,
-        F: FnOnce(D::Reference<'c>) -> R;
+        X: 'c;
 
     /// Returns an owned instance of `X`, cloning or converting non-true instances when necessary.
     fn own(self) -> X;
@@ -178,9 +173,10 @@
     }
 
     #[inline]
-    fn eval_ref_decompose<R, F>(&self, f: F) -> R
+    fn eval_ref_decompose<'b, R>(&self, f: impl FnOnce(&'b X) -> R) -> R
     where
-        F: for<'a> FnOnce(&'a X) -> R,
+        X: 'b,
+        Self: 'b,
     {
         f(self)
     }

mercurial