diff options
author | Araq <rumpf_a@web.de> | 2018-02-13 17:19:52 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2018-02-13 17:19:52 +0100 |
commit | 83a8019027c8ead25811078f68fc088b5cfdd74d (patch) | |
tree | 9696d45f95b04db998f215ad134773379bcefd72 | |
parent | 843bb50a8b777105ce85706a554be9c8ac59302e (diff) | |
download | Nim-83a8019027c8ead25811078f68fc088b5cfdd74d.tar.gz |
symbol files: bugfixes
-rw-r--r-- | compiler/rodwrite.nim | 8 |
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: |