summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-01-12 21:41:52 +0100
committerAraq <rumpf_a@web.de>2014-01-12 21:41:52 +0100
commit616434c4922373db8072a47d0d8cd1a2e129ab95 (patch)
treef44ed05bec2d8e74a1e6b1dca5995938e7725e23 /compiler
parent137e97154729726d650d1aa75042e7604fb266f9 (diff)
downloadNim-616434c4922373db8072a47d0d8cd1a2e129ab95.tar.gz
bugfix: renderer supports 'ptr' etc. as type constraint
Diffstat (limited to 'compiler')
-rw-r--r--compiler/renderer.nim9
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/renderer.nim b/compiler/renderer.nim
index 99891df25..6c7d9cae3 100644
--- a/compiler/renderer.nim
+++ b/compiler/renderer.nim
@@ -421,10 +421,11 @@ proc lsub(n: PNode): int =
   of nkElifExpr: result = lsons(n) + len("_elif_:_")
   of nkElseExpr: result = lsub(n.sons[0]) + len("_else:_") # type descriptions
   of nkTypeOfExpr: result = lsub(n.sons[0]) + len("type_")
-  of nkRefTy: result = lsub(n.sons[0]) + len("ref_")
-  of nkPtrTy: result = lsub(n.sons[0]) + len("ptr_")
-  of nkVarTy: result = lsub(n.sons[0]) + len("var_")
-  of nkDistinctTy: result = lsub(n.sons[0]) + len("Distinct_")
+  of nkRefTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) + len("ref")
+  of nkPtrTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) + len("ptr")
+  of nkVarTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) + len("var")
+  of nkDistinctTy: result = (if n.len > 0: lsub(n.sons[0])+1 else: 0) +
+                                                         len("Distinct")
   of nkTypeDef: result = lsons(n) + 3
   of nkOfInherit: result = lsub(n.sons[0]) + len("of_")
   of nkProcTy: result = lsons(n) + len("proc_")