File tree Expand file tree Collapse file tree 2 files changed +83
-1
lines changed
FSharp.Control.TaskSeq.Test Expand file tree Collapse file tree 2 files changed +83
-1
lines changed Original file line number Diff line number Diff line change 1+ module TaskSeq.Tests.Let
2+
3+ open System
4+ open System.Threading .Tasks
5+ open FsUnit
6+ open Xunit
7+
8+ open FSharp.Control
9+
10+ [<Fact>]
11+ let ``CE taskSeq : use 'let'`` () =
12+ let mutable value = 0
13+
14+ taskSeq {
15+ let value1 = value + 1
16+ let value2 = value1 + 1
17+ yield value2
18+ }
19+ |> TaskSeq.exactlyOne
20+ |> Task.map ( should equal 2 )
21+
22+ [<Fact>]
23+ let ``CE taskSeq : use 'let ! ' with a task< unit> `` () =
24+ let mutable value = 0
25+
26+ taskSeq {
27+ let! unit ' = task { do value <- value + 1 }
28+ do unit'
29+ }
30+ |> verifyEmpty
31+ |> Task.map ( fun _ -> value |> should equal 1 )
32+
33+ [<Fact>]
34+ let ``CE taskSeq : use 'let ! ' with a task< string> `` () =
35+ taskSeq {
36+ let! test = task { return " test" }
37+ yield test
38+ }
39+ |> TaskSeq.exactlyOne
40+ |> Task.map ( should equal " test" )
41+
42+ [<Fact>]
43+ let ``CE taskSeq : use 'let ! ' with a valuetask< unit> `` () =
44+ let mutable value = 0
45+
46+ taskSeq {
47+ let! unit ' = ValueTask.ofTask ( task { do value <- value + 1 })
48+ do unit'
49+ }
50+ |> verifyEmpty
51+ |> Task.map ( fun _ -> value |> should equal 1 )
52+
53+ [<Fact>]
54+ let ``CE taskSeq : use 'let ! ' with a valuetask< string> `` () =
55+ taskSeq {
56+ let! test = ValueTask.ofTask ( task { return " test" })
57+ yield test
58+ }
59+ |> TaskSeq.exactlyOne
60+ |> Task.map ( should equal " test" )
61+
62+ [<Fact>]
63+ let ``CE taskSeq : use 'let ! ' with a non- generic valuetask`` () =
64+ let mutable value = 0
65+
66+ taskSeq {
67+ let! unit ' = ValueTask( task { do value <- value + 1 })
68+ do unit'
69+ }
70+ |> verifyEmpty
71+ |> Task.map ( fun _ -> value |> should equal 1 )
72+
73+ [<Fact>]
74+ let ``CE taskSeq : use 'let ! ' with a non- generic task`` () =
75+ let mutable value = 0
76+
77+ taskSeq {
78+ let! unit ' = ( task { do value <- value + 1 }) |> Task.ignore
79+ do unit'
80+ }
81+ |> verifyEmpty
82+ |> Task.map ( fun _ -> value |> should equal 1 )
Original file line number Diff line number Diff line change @@ -635,7 +635,7 @@ module HighPriority =
635635 //
636636 member inline _.Bind ( task : Task < 'TResult1 >, continuation : ( 'TResult1 -> TaskSeqCode < 'T >)) : TaskSeqCode < 'T > =
637637 TaskSeqCode< 'T>( fun sm ->
638- let mutable awaiter : TaskAwaiter < 'TResult1 > = task.GetAwaiter()
638+ let mutable awaiter = task.GetAwaiter()
639639 let mutable __stack_fin = true
640640
641641 Debug.logInfo " at Bind"
You can’t perform that action at this time.
0 commit comments