* 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:
parent
826e62953f
commit
1f9bf43100
3 changed files with 12 additions and 0 deletions
|
|
@ -35,6 +35,8 @@
|
||||||
|
|
||||||
## Language changes
|
## Language changes
|
||||||
|
|
||||||
|
- The `cstring` doesn't support `[]=` operator in JS backend.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Compiler changes
|
## Compiler changes
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
6
tests/js/tmodify_cstring.nim
Normal file
6
tests/js/tmodify_cstring.nim
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
discard """
|
||||||
|
errormsg: "cstring doesn't support `[]=` operator"
|
||||||
|
"""
|
||||||
|
|
||||||
|
var x = cstring"abcd"
|
||||||
|
x[0] = 'x'
|
||||||
Loading…
Add table
Add a link
Reference in a new issue