Skip to content

Commit 7860a08

Browse files
committed
Remove invalidArg exception from TaskSeq.zip
1 parent 99fe960 commit 7860a08

File tree

3 files changed

+2
-40
lines changed

3 files changed

+2
-40
lines changed

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

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -132,32 +132,3 @@ module Other =
132132

133133
combined |> should equal [| ("one", 42L); ("two", 43L) |]
134134
}
135-
136-
[<Theory; InlineData true; InlineData false>]
137-
let ``TaskSeq-zip throws on unequal lengths, variant`` leftThrows = task {
138-
let long = Gen.sideEffectTaskSeq 11
139-
let short = Gen.sideEffectTaskSeq 10
140-
141-
let combined =
142-
if leftThrows then
143-
TaskSeq.zip short long
144-
else
145-
TaskSeq.zip long short
146-
147-
fun () -> TaskSeq.toArrayAsync combined |> Task.ignore
148-
|> should throwAsyncExact typeof<ArgumentException>
149-
}
150-
151-
[<Theory; InlineData true; InlineData false>]
152-
let ``TaskSeq-zip throws on unequal lengths with empty seq`` leftThrows = task {
153-
let one = Gen.sideEffectTaskSeq 1
154-
155-
let combined =
156-
if leftThrows then
157-
TaskSeq.zip TaskSeq.empty one
158-
else
159-
TaskSeq.zip one TaskSeq.empty
160-
161-
fun () -> TaskSeq.toArrayAsync combined |> Task.ignore
162-
|> should throwAsyncExact typeof<ArgumentException>
163-
}

src/FSharp.Control.TaskSeq/FSharp.Control.TaskSeq.fsproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ Generates optimized IL code through the new resumable state machines, and comes
2323
<PackageReadmeFile>nuget-package-readme.md</PackageReadmeFile>
2424
<PackageReleaseNotes>
2525
Release notes:
26+
0.2.3
27+
- do not throw exception for unequal lengths in TaskSeq.zip, fixes #32
2628
0.2.2
2729
- removes TaskSeq.toSeqCachedAsync, which was incorrectly named. Use toSeq or toListAsync instead.
2830
- renames TaskSeq.toSeqCached to TaskSeq.toSeq, which was its actual operational behavior.

src/FSharp.Control.TaskSeq/TaskSeqInternal.fs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -272,28 +272,17 @@ module internal TaskSeqInternal =
272272
}
273273

274274
let zip (source1: taskSeq<_>) (source2: taskSeq<_>) = taskSeq {
275-
let inline validate step1 step2 =
276-
if step1 <> step2 then
277-
if step1 then
278-
invalidArg "taskSequence1" "The task sequences have different lengths."
279-
280-
if step2 then
281-
invalidArg "taskSequence2" "The task sequences have different lengths."
282-
283-
284275
use e1 = source1.GetAsyncEnumerator(CancellationToken())
285276
use e2 = source2.GetAsyncEnumerator(CancellationToken())
286277
let mutable go = true
287278
let! step1 = e1.MoveNextAsync()
288279
let! step2 = e2.MoveNextAsync()
289280
go <- step1 && step2
290-
validate step1 step2
291281

292282
while go do
293283
yield e1.Current, e2.Current
294284
let! step1 = e1.MoveNextAsync()
295285
let! step2 = e2.MoveNextAsync()
296-
validate step1 step2
297286
go <- step1 && step2
298287
}
299288

0 commit comments

Comments
 (0)