mirror of
https://github.com/nim-lang/Nim.git
synced 2026-05-04 13:04:44 +00:00
Mark system.newStringUninit sideeffect-free (#24813)
- Allows using with `--experimental:strictFuncs`
- `{.cast(noSideEffect).}:` inside the proc was required to mutate
`s.len`, same as used in `newSeqImpl`.
- Removed now unnecessary `noSideEffect` casts in `system.nim`
-
Closes #24811
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
(cherry picked from commit ecdcffed4b)
This commit is contained in:
@@ -2356,8 +2356,7 @@ func multiReplace*(s: openArray[char]; replacements: varargs[(set[char], char)])
|
||||
# Sanitize a filename with Windows-incompatible characters
|
||||
const file = "a/file:with?invalid*chars.txt"
|
||||
doAssert file.multiReplace(WinSanitationRules) == "a-file-with_invalid_chars.txt"
|
||||
{.cast(noSideEffect).}:
|
||||
result = newStringUninit(s.len)
|
||||
result = newStringUninit(s.len)
|
||||
for i in 0..<s.len:
|
||||
var nextChar = s[i]
|
||||
for subs, by in replacements.items:
|
||||
|
||||
Reference in New Issue
Block a user