diff --git a/compiler/ccgtrav.nim b/compiler/ccgtrav.nim index 457093c61..982f88cbd 100644 --- a/compiler/ccgtrav.nim +++ b/compiler/ccgtrav.nim @@ -32,6 +32,9 @@ proc genTraverseProc(c: var TTraversalClosure, accessor: Rope, n: PNode; if (n.sons[0].kind != nkSym): internalError(n.info, "genTraverseProc") var p = c.p let disc = n.sons[0].sym + if disc.loc.r == nil: fillObjectFields(c.p.module, typ) + if disc.loc.t == nil: + internalError(n.info, "genTraverseProc()") lineF(p, cpsStmts, "switch ($1.$2) {$n", [accessor, disc.loc.r]) for i in countup(1, sonsLen(n) - 1): let branch = n.sons[i]