summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/vmdeps.nim9
1 files changed, 7 insertions, 2 deletions
diff --git a/compiler/vmdeps.nim b/compiler/vmdeps.nim
index 11d839c41..2b80f6aed 100644
--- a/compiler/vmdeps.nim
+++ b/compiler/vmdeps.nim
@@ -28,7 +28,7 @@ proc opGorge*(cmd, input: string): string =
   except IOError, OSError:
     result = ""
 
-proc opSlurp*(file: string, info: TLineInfo, module: PSym): string = 
+proc opSlurp*(file: string, info: TLineInfo, module: PSym): string =
   try:
     let filename = file.findFile
     result = readFile(filename)
@@ -87,7 +87,12 @@ proc mapTypeToAst(t: PType, info: TLineInfo; allowRecursion=false): PNode =
       result.add mapTypeToAst(t.sons[i], info)
   of tyGenericInst, tyGenericBody, tyOrdinal, tyUserTypeClassInst:
     result = mapTypeToAst(t.lastSon, info)
-  of tyGenericParam, tyDistinct, tyForward: result = atomicType(t.sym.name.s)
+  of tyDistinct:
+    if allowRecursion:
+      result = mapTypeToBracket("distinct", t, info)
+    else:
+      result = atomicType(t.sym.name.s)
+  of tyGenericParam, tyForward: result = atomicType(t.sym.name.s)
   of tyObject:
     if allowRecursion:
       result = newNodeIT(nkObjectTy, info, t)