diff options
author | flywind <43030857+xflywind@users.noreply.github.com> | 2021-01-02 10:11:46 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-02 17:11:46 +0100 |
commit | b8775bff575fb6860d43806b8070b904229927bf (patch) | |
tree | 26704abe8a8a763127a072d8d05be7926f362128 | |
parent | d8b1ffc85733a2189a91deafe00d67af690028de (diff) | |
download | Nim-b8775bff575fb6860d43806b8070b904229927bf.tar.gz |
fix `is "closure"` (#16552)
-rw-r--r-- | compiler/semexprs.nim | 3 | ||||
-rw-r--r-- | tests/stdlib/thashes.nim | 9 |
2 files changed, 10 insertions, 2 deletions
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 9eccdef45..1e5772189 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -408,8 +408,7 @@ proc isOpImpl(c: PContext, n: PNode, flags: TExprFlags): PNode = of "closure": let t = skipTypes(t1, abstractRange) res = t.kind == tyProc and - t.callConv == ccClosure and - tfIterator notin t.flags + t.callConv == ccClosure of "iterator": let t = skipTypes(t1, abstractRange) res = t.kind == tyProc and diff --git a/tests/stdlib/thashes.nim b/tests/stdlib/thashes.nim index 9c9287784..b8a2c2c6a 100644 --- a/tests/stdlib/thashes.nim +++ b/tests/stdlib/thashes.nim @@ -4,6 +4,15 @@ discard """ import std/hashes + +when not defined(js) and not defined(cpp): + block: + var x = 12 + iterator hello(): int {.closure.} = + yield x + + discard hash(hello) + block hashes: block hashing: var dummy = 0.0 |