* 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>
This commit is contained in:
flywind 2020-11-12 16:20:10 +08:00 • committed by GitHub
commit 1f9bf43100
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 0 deletions

View file

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

View file

@ -1049,6 +1049,10 @@ proc genAsgnAux(p: PProc, x, y: PNode, noCopyNeeded: bool) =
var a, b: TCompRes var a, b: TCompRes
var xtyp = mapType(p, x.typ) 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) gen(p, x, a)
genLineDir(p, y) genLineDir(p, y)
gen(p, y, b) gen(p, y, b)

View file

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