This commit is contained in:
flywind 2021-01-04 03:24:52 -06:00 • committed by GitHub
commit c80261bc00
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 4 deletions

View file

@ -2412,10 +2412,13 @@ when notJSnotNims:
{.error: "Only closure function and iterator are allowed!".}
proc finished*[T: proc](x: T): bool {.noSideEffect, inline.} =
## can be used to determine if a first class iterator has finished.
{.emit: """
`result` = ((NI*) `x`.ClE_0)[1] < 0;
""".}
## It can be used to determine if a first class iterator has finished.
when T is "iterator":
{.emit: """
`result` = ((NI*) `x`.ClE_0)[1] < 0;
""".}
else:
{.error: "Only closure iterator is allowed!".}
when defined(js):
include "system/jssys"

View file

@ -210,3 +210,10 @@ block: # Ordinal
# doAssert enum is Ordinal # fails
# doAssert Ordinal is SomeOrdinal
# doAssert SomeOrdinal is Ordinal
block:
proc p() = discard
doAssert not compiles(echo p.rawProc.repr)
doAssert not compiles(echo p.rawEnv.repr)
doAssert not compiles(echo p.finished)