diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2018-02-11 14:52:19 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2018-02-11 14:52:26 +0100 |
commit | a4deceb13479c370f9d642e17facd92a1146a874 (patch) | |
tree | 4dad9f3718c3300eb217085071d185e76c5b8abc /tests/errmsgs/tgcsafety.nim | |
parent | 7847cd875924356178dd23dcbbe150f6b852faf5 (diff) | |
download | Nim-a4deceb13479c370f9d642e17facd92a1146a874.tar.gz |
fixes #6186
Diffstat (limited to 'tests/errmsgs/tgcsafety.nim')
-rw-r--r-- | tests/errmsgs/tgcsafety.nim | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/errmsgs/tgcsafety.nim b/tests/errmsgs/tgcsafety.nim new file mode 100644 index 000000000..4d192db90 --- /dev/null +++ b/tests/errmsgs/tgcsafety.nim @@ -0,0 +1,30 @@ +discard """ +cmd: "nim check $file" +errormsg: "type mismatch: got <AsyncHttpServer, Port, proc (req: Request): Future[system.void]{.locks: <unknown>.}>" +nimout: ''' +type mismatch: got <AsyncHttpServer, Port, proc (req: Request): Future[system.void]{.locks: <unknown>.}> +but expected one of: +proc serve(server: AsyncHttpServer; port: Port; + callback: proc (request: Request): Future[void]; address = ""): Future[void] + first type mismatch at position: 3 + required type: proc (request: Request): Future[system.void]{.closure, gcsafe.} + but expression 'cb' is of type: proc (req: Request): Future[system.void]{.locks: <unknown>.} + This expression is not GC-safe. Annotate the proc with {.gcsafe.} to get extended error information. + +expression: serve(server, Port(7898), cb) +''' +""" + +# bug #6186 + +import asyncdispatch, asynchttpserver + +var server = newAsyncHttpServer() + +var foo = "foo" +proc cb(req: Request) {.async.} = + var baa = foo & "asds" + await req.respond(Http200, baa) + +asyncCheck server.serve(Port(7898), cb ) +runForever() |