diff options
-rw-r--r-- | compiler/semcall.nim | 13 | ||||
-rw-r--r-- | compiler/types.nim | 3 | ||||
-rw-r--r-- | tests/stdlib/nre/find.nim | 4 | ||||
-rw-r--r-- | todo.txt | 3 |
4 files changed, 17 insertions, 6 deletions
diff --git a/compiler/semcall.nim b/compiler/semcall.nim index 87a34ca4a..c62f53a62 100644 --- a/compiler/semcall.nim +++ b/compiler/semcall.nim @@ -53,7 +53,18 @@ proc pickBestCandidate(c: PContext, headSymbol: PNode, if symx.kind in filter: syms.add((symx, o.lastOverloadScope)) symx = nextOverloadIter(o, c, headSymbol) - if syms.len == 0: return + if syms.len == 0: + when false: + if skIterator notin filter: + # also try iterators, but these are 2nd class: + symx = initOverloadIter(o, c, headSymbol) + while symx != nil: + if symx.kind == skIterator: + syms.add((symx, 100)) + symx = nextOverloadIter(o, c, headSymbol) + if syms.len == 0: return + else: + return var z: TCandidate initCandidate(c, best, syms[0][0], initialBinding, symScope) diff --git a/compiler/types.nim b/compiler/types.nim index 42ca0f9fc..c56382b89 100644 --- a/compiler/types.nim +++ b/compiler/types.nim @@ -914,7 +914,8 @@ proc sameTypeAux(x, y: PType, c: var TSameTypeClosure): bool = while a.kind == tyDistinct: a = a.sons[0] if a.kind != b.kind: return false - if x.kind == tyGenericInst: + # this is required by tunique_type but makes no sense really: + if x.kind == tyGenericInst and IgnoreTupleFields notin c.flags: let lhs = x.skipGenericAlias rhs = y.skipGenericAlias diff --git a/tests/stdlib/nre/find.nim b/tests/stdlib/nre/find.nim index 05bfb848a..94fdd0bc1 100644 --- a/tests/stdlib/nre/find.nim +++ b/tests/stdlib/nre/find.nim @@ -1,4 +1,6 @@ -import unittest, sequtils, nre, optional_nonstrict +import unittest, sequtils +import nre except toSeq +import optional_nonstrict suite "find": test "find text": diff --git a/todo.txt b/todo.txt index 38d0fef58..86bffcc3d 100644 --- a/todo.txt +++ b/todo.txt @@ -1,9 +1,6 @@ version 1.0 battle plan ======================= -- tests/stdlib/tnre.nim -- tests/closure/tflatmap.nim - - fix "high priority" bugs - try to fix as many compiler crashes as reasonable |