Files
Nim/tests/let/timportc.nim
PMunch 9acbf99efb Allow let to not have value when using importc (#14258)
* Allow let to not have value when using importc

This allows a let statement with the `{.importc.}` pragma to not be
initialised with a value. This allows us to declare C constants as Nim
lets without putting the value in the Nim code (which can lead to
errors, and requires us to go looking for the value). Fixes #14253

* Proper fix and documentation + changelog entry

* Improve testcase with one from timotheecour

* Add test to verify it working with macros
2020-05-12 20:28:18 +02:00

25 lines
416 B
Nim

discard """
targets: "c cpp js"
"""
when defined(c) or defined(cpp):
{.emit:"""
const int TEST1 = 123;
#define TEST2 321
""".}
when defined(js):
{.emit:"""
const TEST1 = 123;
const TEST2 = 321; // JS doesn't have macros, so we just duplicate
""".}
let
TEST0 = 1
TEST1 {.importc, nodecl.}: cint
TEST2 {.importc, nodecl.}: cint
doAssert TEST0 == 1
doAssert TEST1 == 123
doAssert TEST2 == 321