Skip to content

Commit a213a1f

Browse files
committed
Fix FS3511 "This state machine is not statically compilable" in tests
1 parent faf1841 commit a213a1f

File tree

1 file changed

+27
-20
lines changed

1 file changed

+27
-20
lines changed

src/FSharp.Control.TaskSeq.Test/TaskSeq.SkipWhile.Tests.fs

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,8 @@ module SideEffects =
171171
}
172172

173173
[<Fact>]
174-
let ``TaskSeq-skipWhile and variants prove it reads the entire input stream`` () = task {
174+
let ``TaskSeq-skipWhile and variants prove it reads the entire input stream`` () =
175+
175176
let mutable x = 42
176177

177178
let items = taskSeq {
@@ -180,26 +181,29 @@ module SideEffects =
180181
x <- x + 1 // we are proving we ALWAYS get here
181182
}
182183

184+
// this needs to be lifted from the task or it raises the infamous
185+
// warning FS3511 on CI: This state machine is not statically compilable
183186
let testSkipper skipper expected = task {
184187
let! first = items |> skipper |> TaskSeq.toArrayAsync
185188
return first |> should equal expected
186189
}
187190

188-
do! testSkipper (TaskSeq.skipWhile ((=) 42)) [| 84 |]
189-
x |> should equal 43
191+
task {
192+
do! testSkipper (TaskSeq.skipWhile ((=) 42)) [| 84 |]
193+
x |> should equal 43
190194

191-
do! testSkipper (TaskSeq.skipWhileInclusive ((=) 43)) [||]
192-
x |> should equal 44
195+
do! testSkipper (TaskSeq.skipWhileInclusive ((=) 43)) [||]
196+
x |> should equal 44
193197

194-
do! testSkipper (TaskSeq.skipWhileAsync (fun x -> Task.fromResult (x = 44))) [| 88 |]
195-
x |> should equal 45
198+
do! testSkipper (TaskSeq.skipWhileAsync (fun x -> Task.fromResult (x = 44))) [| 88 |]
199+
x |> should equal 45
196200

197-
do! testSkipper (TaskSeq.skipWhileInclusiveAsync (fun x -> Task.fromResult (x = 45))) [||]
198-
x |> should equal 46
199-
}
201+
do! testSkipper (TaskSeq.skipWhileInclusiveAsync (fun x -> Task.fromResult (x = 45))) [||]
202+
x |> should equal 46
203+
}
200204

201205
[<Fact>]
202-
let ``TaskSeq-skipWhile and variants prove side effects are properly executed`` () = task {
206+
let ``TaskSeq-skipWhile and variants prove side effects are properly executed`` () =
203207
let mutable x = 41
204208

205209
let items = taskSeq {
@@ -210,23 +214,26 @@ module SideEffects =
210214
x <- x + 200 // as previously proven, we should ALWAYS trigger this
211215
}
212216

217+
// this needs to be lifted from the task or it raises the infamous
218+
// warning FS3511 on CI: This state machine is not statically compilable
213219
let testSkipper skipper expected = task {
214220
let! first = items |> skipper |> TaskSeq.toArrayAsync
215221
return first |> should equal expected
216222
}
217223

218-
do! testSkipper (TaskSeq.skipWhile ((=) 42)) [| 88 |]
219-
x |> should equal 244
224+
task {
225+
do! testSkipper (TaskSeq.skipWhile ((=) 42)) [| 88 |]
226+
x |> should equal 244
220227

221-
do! testSkipper (TaskSeq.skipWhileInclusive ((=) 245)) [||]
222-
x |> should equal 447
228+
do! testSkipper (TaskSeq.skipWhileInclusive ((=) 245)) [||]
229+
x |> should equal 447
223230

224-
do! testSkipper (TaskSeq.skipWhileAsync (fun x -> Task.fromResult (x = 448))) [| 900 |]
225-
x |> should equal 650
231+
do! testSkipper (TaskSeq.skipWhileAsync (fun x -> Task.fromResult (x = 448))) [| 900 |]
232+
x |> should equal 650
226233

227-
do! testSkipper (TaskSeq.skipWhileInclusiveAsync (fun x -> Task.fromResult (x = 651))) [||]
228-
x |> should equal 853
229-
}
234+
do! testSkipper (TaskSeq.skipWhileInclusiveAsync (fun x -> Task.fromResult (x = 651))) [||]
235+
x |> should equal 853
236+
}
230237

231238
[<Theory; ClassData(typeof<TestSideEffectTaskSeq>)>]
232239
let ``TaskSeq-skipWhile consumes the prefix of a longer sequence, with mutation`` variant = task {

0 commit comments

Comments
 (0)