Support exception unwrapping for AsUniTask of Task.WhenAll

master
hadashiA 2023-09-01 16:58:11 +09:00
parent 8eac07ad24
commit 6fb4f2d6d2
2 changed files with 8 additions and 5 deletions

View File

@ -19,11 +19,14 @@ namespace NetCoreTests
{
await ThrowOrValueAsync().AsUniTask();
});
}
[Fact]
public async Task PropagateWhenAllException()
{
await Assert.ThrowsAsync<InvalidOperationException>(async () =>
{
await Task.WhenAll(ThrowAsync(), ThrowAsync(), ThrowAsync());
await Task.WhenAll(ThrowAsync(), ThrowAsync(), ThrowAsync()).AsUniTask();
});
}

View File

@ -28,7 +28,7 @@ namespace Cysharp.Threading.Tasks
p.TrySetCanceled();
break;
case TaskStatus.Faulted:
p.TrySetException(x.Exception.InnerExceptions.Count == 1 ? x.Exception.InnerException : x.Exception);
p.TrySetException(x.Exception.InnerException);
break;
case TaskStatus.RanToCompletion:
p.TrySetResult(x.Result);
@ -58,7 +58,7 @@ namespace Cysharp.Threading.Tasks
p.TrySetCanceled();
break;
case TaskStatus.Faulted:
p.TrySetException(x.Exception.InnerExceptions.Count == 1 ? x.Exception.InnerException : x.Exception);
p.TrySetException(x.Exception.InnerException);
break;
case TaskStatus.RanToCompletion:
p.TrySetResult();