From 71b7383f127d0308d465bab4365feb9803bf09d1 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Wed, 3 Jul 2019 07:22:30 +0200 Subject: [PATCH] fixes #11479 (#11641) --- compiler/types.nim | 2 +- .../types/tyet_another_generic_regression.nim | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/compiler/types.nim b/compiler/types.nim index 8ba6036429..d879c0f567 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 914166e062..0839937570 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"]()