From f4fff186adecca55309ab1c9312ad1db74ee338e Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 4 Jan 2026 19:42:23 +0000 Subject: [PATCH] Add using statement support to ItBuilder and EachBuilder This adds the Using method to both ItBuilder and EachBuilder computation expressions, enabling the use of 'use' bindings for proper disposal of IDisposable resources within test cases and hooks. --- Sprout.fs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Sprout.fs b/Sprout.fs index ebedd5b..ccc73c2 100644 --- a/Sprout.fs +++ b/Sprout.fs @@ -115,6 +115,7 @@ module Builders = do! b } member _.Bind(m: Async<'T>, f: 'T -> Async) = async.Bind(m, f) + member _.Using(resource: 'T when 'T :> System.IDisposable, binder: 'T -> Async) = async.Using(resource, binder) member _.Run(f: Async) = factory (fun() -> f) type ItBuilder(name: string) = @@ -127,6 +128,7 @@ module Builders = do! b } member _.Bind(m: Async<'T>, f: 'T -> Async) = async.Bind(m, f) + member _.Using(resource: 'T when 'T :> System.IDisposable, binder: 'T -> Async) = async.Using(resource, binder) member _.Run(f: Async) = It.Active name (fun () -> f) type DescribeBuilder(name) =