* fix #14157

* Update compiler/jsgen.nim

* add changelog

* Update compiler/jsgen.nim

* Update tests/js/tmodify_cstring.nim

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
(cherry picked from commit 1f9bf43100)
This commit is contained in:
flywind
2020-11-12 16:20:10 +08:00
committed by narimiran
parent 04254fe9d6
commit 23b0b10886
3 changed files with 12 additions and 0 deletions

View File

@@ -18,6 +18,8 @@
## Language changes
- The `cstring` doesn't support `[]=` operator in JS backend.
## Compiler changes

View File

@@ -1049,6 +1049,10 @@ proc genAsgnAux(p: PProc, x, y: PNode, noCopyNeeded: bool) =
var a, b: TCompRes
var xtyp = mapType(p, x.typ)
# disable `[]=` for cstring
if x.kind == nkBracketExpr and x.len >= 2 and x[0].typ.skipTypes(abstractInst).kind == tyCString:
localError(p.config, x.info, "cstring doesn't support `[]=` operator")
gen(p, x, a)
genLineDir(p, y)
gen(p, y, b)

View File

@@ -0,0 +1,6 @@
discard """
errormsg: "cstring doesn't support `[]=` operator"
"""
var x = cstring"abcd"
x[0] = 'x'