multisync now allows tuples in return type (#21074)

* Add test case

* Use .toStrLit() on param node first

This means that more complex types are fully rendered
This commit is contained in:
Jake Leahy 2022-12-12 00:44:41 +11:00 • committed by GitHub
commit c7493bbdd0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 2 deletions

19
tests/async/t20111.nim Normal file
View file

@ -0,0 +1,19 @@
discard """
action: "run"
"""
import asyncdispatch
type
Sync = object
Async = object
SyncRes = (Sync, string)
AsyncRes = (Async, string)
proc foo(val: Sync | Async): Future[(Async, string) | (Sync, string)] {.multisync.} =
return (val, "hello")
let
myAsync = Async()
mySync = Sync()
doAssert typeof(waitFor foo(myAsync)) is AsyncRes
doAssert typeof(foo(mySync)) is SyncRes