diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2019-07-03 07:22:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-03 07:22:30 +0200 |
commit | 71b7383f127d0308d465bab4365feb9803bf09d1 (patch) | |
tree | d1590c4637c5c9e08da68792e1da38644e251355 | |
parent | c522a455df3817d98c2cd9132668c4eb9fbb0d88 (diff) | |
download | Nim-71b7383f127d0308d465bab4365feb9803bf09d1.tar.gz |
fixes #11479 (#11641)
-rw-r--r-- | compiler/types.nim | 2 | ||||
-rw-r--r-- | tests/types/tyet_another_generic_regression.nim | 19 |
2 files changed, 20 insertions, 1 deletions
diff --git a/compiler/types.nim b/compiler/types.nim index 8ba603642..d879c0f56 100644 --- a/compiler/types.nim +++ b/compiler/types.nim @@ -168,7 +168,7 @@ proc iterOverTypeAux(marker: var IntSet, t: PType, iter: TTypeIter, for i in 0 ..< sonsLen(t): result = iterOverTypeAux(marker, t.sons[i], iter, closure) if result: return - if t.n != nil: result = iterOverNode(marker, t.n, iter, closure) + if t.n != nil and t.kind != tyProc: result = iterOverNode(marker, t.n, iter, closure) proc iterOverType(t: PType, iter: TTypeIter, closure: RootRef): bool = var marker = initIntSet() diff --git a/tests/types/tyet_another_generic_regression.nim b/tests/types/tyet_another_generic_regression.nim index 914166e06..083993757 100644 --- a/tests/types/tyet_another_generic_regression.nim +++ b/tests/types/tyet_another_generic_regression.nim @@ -1,3 +1,7 @@ +discard """ + output: '''''' +""" + import system type Bar[T] = ref object @@ -11,3 +15,18 @@ proc Foo[T: Bar[types]](): T = discard Foo[Bar[int32]]() #bug #6073 + +# bug #11479 + +import tables + +proc test() = + discard readfile("temp.nim") + echo "ho" + +const + map = { + "test": test, + }.toTable + +#map["test"]() |