summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2018-12-22 18:37:14 +0100
committerAraq <rumpf_a@web.de>2018-12-22 18:39:20 +0100
commitbdb67201b2713a4045167fd8feb407df98a43997 (patch)
tree3745f822e1eda2e93c43f8810bef451d53383611 /compiler
parent253936385143cb9d58f565dee0f1b5768accc81e (diff)
downloadNim-bdb67201b2713a4045167fd8feb407df98a43997.tar.gz
fixes #10033 [backport]
Diffstat (limited to 'compiler')
-rw-r--r--compiler/ccgtypes.nim4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/ccgtypes.nim b/compiler/ccgtypes.nim
index 235bd16d8..243aa87de 100644
--- a/compiler/ccgtypes.nim
+++ b/compiler/ccgtypes.nim
@@ -970,9 +970,9 @@ proc genTypeInfoAux(m: BModule, typ, origType: PType, name: Rope;
 
 proc discriminatorTableName(m: BModule, objtype: PType, d: PSym): Rope =
   # bugfix: we need to search the type that contains the discriminator:
-  var objtype = objtype
+  var objtype = objtype.skipTypes(abstractPtrs)
   while lookupInRecord(objtype.n, d.name) == nil:
-    objtype = objtype.sons[0]
+    objtype = objtype.sons[0].skipTypes(abstractPtrs)
   if objtype.sym == nil:
     internalError(m.config, d.info, "anonymous obj with discriminator")
   result = "NimDT_$1_$2" % [rope($hashType(objtype)), rope(d.name.s.mangle)]