@@ -51,16 +51,19 @@ module TaskSeq =
5151 e.DisposeAsync() .AsTask() .Wait()
5252 |]
5353
54- let toSeq ( source : taskSeq < 'T >) = seq {
54+ let toSeq ( source : taskSeq < 'T >) =
5555 Internal.checkNonNull ( nameof source) source
56- let e = source.GetAsyncEnumerator( CancellationToken())
5756
58- try
59- while ( let vt = e.MoveNextAsync() in if vt.IsCompleted then vt.Result else vt.AsTask() .Result) do
60- yield e.Current
61- finally
62- e.DisposeAsync() .AsTask() .Wait()
63- }
57+ seq {
58+
59+ let e = source.GetAsyncEnumerator( CancellationToken())
60+
61+ try
62+ while ( let vt = e.MoveNextAsync() in if vt.IsCompleted then vt.Result else vt.AsTask() .Result) do
63+ yield e.Current
64+ finally
65+ e.DisposeAsync() .AsTask() .Wait()
66+ }
6467
6568 let toArrayAsync source =
6669 Internal.toResizeArrayAsync source
@@ -76,75 +79,82 @@ module TaskSeq =
7679 // Convert 'OfXXX' functions
7780 //
7881
79- let ofArray ( source : 'T []) = taskSeq {
82+ let ofArray ( source : 'T []) =
8083 Internal.checkNonNull ( nameof source) source
8184
82- for c in source do
83- yield c
84- }
85+ taskSeq {
86+ for c in source do
87+ yield c
88+ }
8589
8690 let ofList ( source : 'T list ) = taskSeq {
8791 for c in source do
8892 yield c
8993 }
9094
91- let ofSeq ( source : 'T seq ) = taskSeq {
95+ let ofSeq ( source : 'T seq ) =
9296 Internal.checkNonNull ( nameof source) source
9397
94- for c in source do
95- yield c
96- }
98+ taskSeq {
99+ for c in source do
100+ yield c
101+ }
97102
98- let ofResizeArray ( source : 'T ResizeArray ) = taskSeq {
103+ let ofResizeArray ( source : 'T ResizeArray ) =
99104 Internal.checkNonNull ( nameof source) source
100105
101- for c in source do
102- yield c
103- }
106+ taskSeq {
107+ for c in source do
108+ yield c
109+ }
104110
105- let ofTaskSeq ( source : #Task<'T> seq ) = taskSeq {
111+ let ofTaskSeq ( source : #Task<'T> seq ) =
106112 Internal.checkNonNull ( nameof source) source
107113
108- for c in source do
109- let! c = c
110- yield c
111- }
114+ taskSeq {
115+ for c in source do
116+ let! c = c
117+ yield c
118+ }
112119
113120 let ofTaskList ( source : #Task<'T> list ) = taskSeq {
114121 for c in source do
115122 let! c = c
116123 yield c
117124 }
118125
119- let ofTaskArray ( source : #Task<'T> array ) = taskSeq {
126+ let ofTaskArray ( source : #Task<'T> array ) =
120127 Internal.checkNonNull ( nameof source) source
121128
122- for c in source do
123- let! c = c
124- yield c
125- }
129+ taskSeq {
130+ for c in source do
131+ let! c = c
132+ yield c
133+ }
126134
127- let ofAsyncSeq ( source : Async < 'T > seq ) = taskSeq {
135+ let ofAsyncSeq ( source : Async < 'T > seq ) =
128136 Internal.checkNonNull ( nameof source) source
129137
130- for c in source do
131- let! c = task { return ! c }
132- yield c
133- }
138+ taskSeq {
139+ for c in source do
140+ let! c = task { return ! c }
141+ yield c
142+ }
134143
135144 let ofAsyncList ( source : Async < 'T > list ) = taskSeq {
136145 for c in source do
137146 let! c = Task.ofAsync c
138147 yield c
139148 }
140149
141- let ofAsyncArray ( source : Async < 'T > array ) = taskSeq {
150+ let ofAsyncArray ( source : Async < 'T > array ) =
142151 Internal.checkNonNull ( nameof source) source
143152
144- for c in source do
145- let! c = Async.toTask c
146- yield c
147- }
153+ taskSeq {
154+ for c in source do
155+ let! c = Async.toTask c
156+ yield c
157+ }
148158
149159 //
150160 // Utility functions
@@ -164,34 +174,41 @@ module TaskSeq =
164174 member _.GetAsyncEnumerator ( ct ) = generator() .GetAsyncEnumerator( ct)
165175 }
166176
167- let concat ( sources : taskSeq < #taskSeq < 'T >>) = taskSeq {
177+ let concat ( sources : taskSeq < #taskSeq < 'T >>) =
168178 Internal.checkNonNull ( nameof sources) sources
169179
170- for ts in sources do
171- // no null-check of inner taskseqs, similar to seq
172- yield ! ( ts :> taskSeq < 'T >)
173- }
180+ taskSeq {
181+ for ts in sources do
182+ // no null-check of inner taskseqs, similar to seq
183+ yield ! ( ts :> taskSeq < 'T >)
184+ }
174185
175- let append ( source1 : taskSeq < 'T >) ( source2 : taskSeq < 'T >) = taskSeq {
186+ let append ( source1 : taskSeq < 'T >) ( source2 : taskSeq < 'T >) =
176187 Internal.checkNonNull ( nameof source1) source1
177188 Internal.checkNonNull ( nameof source2) source2
178- yield ! source1
179- yield ! source2
180- }
181189
182- let appendSeq ( source1 : taskSeq < 'T >) ( source2 : seq < 'T >) = taskSeq {
190+ taskSeq {
191+ yield ! source1
192+ yield ! source2
193+ }
194+
195+ let appendSeq ( source1 : taskSeq < 'T >) ( source2 : seq < 'T >) =
183196 Internal.checkNonNull ( nameof source1) source1
184197 Internal.checkNonNull ( nameof source2) source2
185- yield ! source1
186- yield ! source2
187- }
188198
189- let prependSeq ( source1 : seq < 'T >) ( source2 : taskSeq < 'T >) = taskSeq {
199+ taskSeq {
200+ yield ! source1
201+ yield ! source2
202+ }
203+
204+ let prependSeq ( source1 : seq < 'T >) ( source2 : taskSeq < 'T >) =
190205 Internal.checkNonNull ( nameof source1) source1
191206 Internal.checkNonNull ( nameof source2) source2
192- yield ! source1
193- yield ! source2
194- }
207+
208+ taskSeq {
209+ yield ! source1
210+ yield ! source2
211+ }
195212
196213 //
197214 // iter/map/collect functions
@@ -261,14 +278,16 @@ module TaskSeq =
261278 | None -> return invalidArg ( nameof source) " The input sequence contains more than one element."
262279 }
263280
264- let indexed ( source : taskSeq < 'T >) = taskSeq {
281+ let indexed ( source : taskSeq < 'T >) =
265282 Internal.checkNonNull ( nameof source) source
266- let mutable i = 0
267283
268- for x in source do
269- yield i, x
270- i <- i + 1
271- }
284+ taskSeq {
285+ let mutable i = 0
286+
287+ for x in source do
288+ yield i, x
289+ i <- i + 1
290+ }
272291
273292 let choose chooser source = Internal.choose ( TryPick chooser) source
274293 let chooseAsync chooser source = Internal.choose ( TryPickAsync chooser) source
0 commit comments