mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 01:44:37 +00:00
* 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:
@@ -18,6 +18,8 @@
|
||||
|
||||
## Language changes
|
||||
|
||||
- The `cstring` doesn't support `[]=` operator in JS backend.
|
||||
|
||||
|
||||
|
||||
## Compiler changes
|
||||
|
||||
@@ -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)
|
||||
|
||||
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'
|
||||
Reference in New Issue
Block a user