diff options
-rw-r--r-- | compiler/ccgtypes.nim | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/ccgtypes.nim b/compiler/ccgtypes.nim index 2ef494b26..c77cbe284 100644 --- a/compiler/ccgtypes.nim +++ b/compiler/ccgtypes.nim @@ -318,13 +318,14 @@ proc getTypeForward(m: BModule, typ: PType; sig: SigHash): Rope = if result != nil: return result = getTypePre(m, typ, sig) if result != nil: return - case typ.skipTypes(abstractInst).kind + let concrete = typ.skipTypes(abstractInst) + case concrete.kind of tySequence, tyTuple, tyObject: result = getTypeName(m, typ, sig) m.forwTypeCache[sig] = result - if not isImportedType(typ): + if not isImportedType(concrete): addf(m.s[cfsForwardTypes], "/* getTypeForward: $1 $2 $3 */", [rope typeToString typ, - rope typ.id, rope m.module.id]) + rope typ.id, rope($typ.kind)]) addf(m.s[cfsForwardTypes], getForwardStructFormat(m), [structOrUnion(typ), result]) doAssert m.forwTypeCache[sig] == result |