summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2017-03-07 00:27:47 +0100
committerAraq <rumpf_a@web.de>2017-03-07 00:27:47 +0100
commit3fa428c88beb376784e9683edd83b1cebc857f08 (patch)
tree4f721dfb664db26d79d6d435999df9c38b9f2fef /compiler
parent4a77b66b19e42b89308817ddc3749e316937e631 (diff)
downloadNim-3fa428c88beb376784e9683edd83b1cebc857f08.tar.gz
fixes #5467
Diffstat (limited to 'compiler')
-rw-r--r--compiler/renderer.nim6
-rw-r--r--compiler/semexprs.nim4
2 files changed, 9 insertions, 1 deletions
diff --git a/compiler/renderer.nim b/compiler/renderer.nim
index 5ce8414d6..badcaea66 100644
--- a/compiler/renderer.nim
+++ b/compiler/renderer.nim
@@ -851,7 +851,11 @@ proc gsub(g: var TSrcGen, n: PNode, c: TContext) =
       put(g, tkRStrLit, '\"' & replace(n[1].strVal, "\"", "\"\"") & '\"')
     else:
       gsub(g, n.sons[1])
-  of nkHiddenStdConv, nkHiddenSubConv, nkHiddenCallConv: gsub(g, n.sons[1])
+  of nkHiddenStdConv, nkHiddenSubConv, nkHiddenCallConv:
+    if n.len >= 2:
+      gsub(g, n.sons[1])
+    else:
+      put(g, tkSymbol, "(wrong conv)")
   of nkCast:
     put(g, tkCast, "cast")
     put(g, tkBracketLe, "[")
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim
index ba60442d6..a419cd000 100644
--- a/compiler/semexprs.nim
+++ b/compiler/semexprs.nim
@@ -2324,12 +2324,16 @@ proc semExpr(c: PContext, n: PNode, flags: TExprFlags = {}): PNode =
   of nkIfExpr, nkIfStmt: result = semIf(c, n)
   of nkHiddenStdConv, nkHiddenSubConv, nkConv, nkHiddenCallConv:
     checkSonsLen(n, 2)
+    considerGenSyms(c, n)
   of nkStringToCString, nkCStringToString, nkObjDownConv, nkObjUpConv:
     checkSonsLen(n, 1)
+    considerGenSyms(c, n)
   of nkChckRangeF, nkChckRange64, nkChckRange:
     checkSonsLen(n, 3)
+    considerGenSyms(c, n)
   of nkCheckedFieldExpr:
     checkMinSonsLen(n, 2)
+    considerGenSyms(c, n)
   of nkTableConstr:
     result = semTableConstr(c, n)
   of nkClosedSymChoice, nkOpenSymChoice: