summary refs log tree commit diff stats
path: root/compiler/seminst.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2015-04-11 02:28:06 +0200
committerAraq <rumpf_a@web.de>2015-04-11 10:01:10 +0200
commitd89a20cc1d1ddc497807825c1a80597630e7fa63 (patch)
tree1eb86a6251455feed5210df2272e360a04a83c4b /compiler/seminst.nim
parent670367e13b5310f627bb114973d7f99d4942bcc8 (diff)
downloadNim-d89a20cc1d1ddc497807825c1a80597630e7fa63.tar.gz
fixes #2509
Diffstat (limited to 'compiler/seminst.nim')
-rw-r--r--compiler/seminst.nim5
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/seminst.nim b/compiler/seminst.nim
index dc36ecf34..f72e2dc5b 100644
--- a/compiler/seminst.nim
+++ b/compiler/seminst.nim
@@ -176,7 +176,9 @@ proc instantiateProcType(c: PContext, pt: TIdTable,
 
   for i in 1 .. <result.len:
     # twrong_field_caching requires these 'resetIdTable' calls:
-    if i > 1: resetIdTable(cl.symMap)
+    if i > 1:
+      resetIdTable(cl.symMap)
+      resetIdTable(cl.localCache)
     result.sons[i] = replaceTypeVarsT(cl, result.sons[i])
     propagateToOwner(result, result.sons[i])
     internalAssert originalParams[i].kind == nkSym
@@ -196,6 +198,7 @@ proc instantiateProcType(c: PContext, pt: TIdTable,
       addDecl(c, result.n.sons[i].sym)
 
   resetIdTable(cl.symMap)
+  resetIdTable(cl.localCache)
   result.sons[0] = replaceTypeVarsT(cl, result.sons[0])
   result.n.sons[0] = originalParams[0].copyTree