Files
Nim/lib/pure
ee7 e8657c7107 make implicit cstring conversions explicit (#19488)
The Nim manual says that an implicit conversion to cstring will
eventually not be allowed [1]:

    A Nim `string` is implicitly convertible to `cstring` for convenience.

    [...]

    Even though the conversion is implicit, it is not *safe*: The garbage collector
    does not consider a `cstring` to be a root and may collect the underlying
    memory. For this reason, the implicit conversion will be removed in future
    releases of the Nim compiler. Certain idioms like conversion of a `const` string
    to `cstring` are safe and will remain to be allowed.

And from Nim 1.6.0, such a conversion triggers a warning [2]:

    A dangerous implicit conversion to `cstring` now triggers a `[CStringConv]` warning.
    This warning will become an error in future versions! Use an explicit conversion
    like `cstring(x)` in order to silence the warning.

However, some files in this repo produced such a warning. For example,
before this commit, compiling `parsejson.nim` would produce:

    /foo/Nim/lib/pure/parsejson.nim(221, 37) Warning: implicit conversion to 'cstring' from a non-const location: my.buf; this will become a compile time error in the future [CStringConv]
    /foo/Nim/lib/pure/parsejson.nim(231, 39) Warning: implicit conversion to 'cstring' from a non-const location: my.buf; this will become a compile time error in the future [CStringConv]

This commit resolves the most visible `CStringConv` warnings, making the
cstring conversions explicit.

[1] https://github.com/nim-lang/Nim/blob/d2318d9ccfe6/doc/manual.md#cstring-type
[2] https://github.com/nim-lang/Nim/blob/d2318d9ccfe6/changelogs/changelog_1_6_0.md#type-system
2022-08-19 15:40:53 -04:00
..
2021-08-31 08:14:05 +02:00
2021-12-20 10:40:32 +01:00
2022-06-04 07:03:03 +02:00
2015-10-01 12:05:45 -07:00
2021-02-23 21:05:39 -08:00
2021-07-13 09:22:33 +02:00
2021-04-08 14:08:58 +02:00
2018-04-06 11:59:49 +02:00
2022-02-02 17:10:11 +01:00
2021-01-09 00:24:41 +01:00
2022-02-14 22:15:59 +00:00
2022-02-02 17:10:11 +01:00
2021-04-06 22:08:59 +02:00
2021-02-24 21:47:27 -08:00
2022-02-02 17:10:11 +01:00
2022-02-02 17:10:11 +01:00
2021-02-21 00:27:39 -08:00
2022-08-02 00:06:27 +08:00
2022-02-02 17:10:11 +01:00
2021-07-20 12:50:43 +02:00
2021-08-23 00:13:39 +02:00
2021-10-05 12:29:59 +02:00
2021-09-19 23:35:50 +02:00
2021-02-08 09:46:07 +01:00
2022-02-02 17:10:11 +01:00