summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2018-02-13 17:19:52 +0100
committerAraq <rumpf_a@web.de>2018-02-13 17:19:52 +0100
commit83a8019027c8ead25811078f68fc088b5cfdd74d (patch)
tree9696d45f95b04db998f215ad134773379bcefd72
parent843bb50a8b777105ce85706a554be9c8ac59302e (diff)
downloadNim-83a8019027c8ead25811078f68fc088b5cfdd74d.tar.gz
symbol files: bugfixes
-rw-r--r--compiler/rodwrite.nim8
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/rodwrite.nim b/compiler/rodwrite.nim
index b9f33236d..59a709295 100644
--- a/compiler/rodwrite.nim
+++ b/compiler/rodwrite.nim
@@ -390,9 +390,9 @@ proc symStack(w: PRodWriter): int =
       inc result
     elif iiTableGet(w.index.tab, s.id) == InvalidKey:
       var m = getModule(s)
-      if m == nil and s.kind != skPackage and sfGenSym notin s.flags:
-        internalError("symStack: module nil: " & s.name.s)
-      if s.kind == skPackage or {sfFromGeneric, sfGenSym} * s.flags != {} or m.id == w.module.id:
+      #if m == nil and s.kind != skPackage and sfGenSym notin s.flags:
+      #  internalError("symStack: module nil: " & s.name.s & " " & $s.kind & " ID " & $s.id)
+      if m == nil or s.kind == skPackage or {sfFromGeneric, sfGenSym} * s.flags != {} or m.id == w.module.id:
         # put definition in here
         var L = w.data.len
         addToIndex(w.index, s.id, L)
@@ -411,7 +411,7 @@ proc symStack(w: PRodWriter): int =
           add(w.compilerProcs, ' ')
           encodeVInt(s.id, w.compilerProcs)
           add(w.compilerProcs, rodNL)
-        if s.kind == skConverter or hasPattern(s):
+        if s.kind == skConverter or (s.ast != nil and hasPattern(s)):
           if w.converters.len != 0: add(w.converters, ' ')
           encodeVInt(s.id, w.converters)
         if s.kind == skMethod and sfDispatcher notin s.flags: