diff options
author | Araq <rumpf_a@web.de> | 2017-03-07 00:27:47 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2017-03-07 00:27:47 +0100 |
commit | 3fa428c88beb376784e9683edd83b1cebc857f08 (patch) | |
tree | 4f721dfb664db26d79d6d435999df9c38b9f2fef /compiler | |
parent | 4a77b66b19e42b89308817ddc3749e316937e631 (diff) | |
download | Nim-3fa428c88beb376784e9683edd83b1cebc857f08.tar.gz |
fixes #5467
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/renderer.nim | 6 | ||||
-rw-r--r-- | compiler/semexprs.nim | 4 |
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: |