diff options
author | Araq <rumpf_a@web.de> | 2015-09-16 11:36:49 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2015-09-16 11:36:49 +0200 |
commit | c9a2fa54c7055c16892e9664dd64d8fc68918c07 (patch) | |
tree | b67fca3d93765f677de696f4f8b1ed50b031b164 /compiler/vm.nim | |
parent | 1251fc76c32bdd50a3b9540e0cd80b0c435051ce (diff) | |
parent | d24eaf084b4be17e43f262d4127a91993ae6f7cd (diff) | |
download | Nim-c9a2fa54c7055c16892e9664dd64d8fc68918c07.tar.gz |
Merge branch 'devel' into fix_bracket_expr
Diffstat (limited to 'compiler/vm.nim')
-rw-r--r-- | compiler/vm.nim | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/compiler/vm.nim b/compiler/vm.nim index 0db287c6a..4dd3b5232 100644 --- a/compiler/vm.nim +++ b/compiler/vm.nim @@ -320,8 +320,19 @@ proc opConv*(dest: var TFullReg, src: TFullReg, desttyp, srctyp: PType): bool = dest.node.strVal = if src.intVal == 0: "false" else: "true" of tyFloat..tyFloat128: dest.node.strVal = $src.floatVal - of tyString, tyCString: + of tyString: dest.node.strVal = src.node.strVal + of tyCString: + if src.node.kind == nkBracket: + # Array of chars + var strVal = "" + for son in src.node.sons: + let c = char(son.intVal) + if c == '\0': break + strVal.add(c) + dest.node.strVal = strVal + else: + dest.node.strVal = src.node.strVal of tyChar: dest.node.strVal = $chr(src.intVal) else: |