misc fixes: remove forceConst (obsolete by static), add more runnableExamples to system (#17896)
* misc fixes * add runnableExamples for compileOption * add runnableExamples for runnableExamples * move tconsteval => tconst * cleanup
This commit is contained in:
parent
1f1d85bb9c
commit
82996aee3f
5 changed files with 78 additions and 88 deletions
35
tests/vm/tconst.nim
Normal file
35
tests/vm/tconst.nim
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
discard """
|
||||
targets: "c cpp js"
|
||||
"""
|
||||
|
||||
import std/strutils
|
||||
|
||||
template forceConst(a: untyped): untyped =
|
||||
## Force evaluation at CT, but `static(a)` is simpler
|
||||
const ret = a
|
||||
ret
|
||||
|
||||
proc isNimVm(): bool =
|
||||
when nimvm: result = true
|
||||
else: result = false
|
||||
|
||||
block:
|
||||
doAssert forceConst(isNimVm())
|
||||
doAssert not isNimVm()
|
||||
doAssert forceConst(isNimVm()) == static(isNimVm())
|
||||
doAssert forceConst(isNimVm()) == isNimVm().static
|
||||
|
||||
template main() =
|
||||
# xxx merge more const related tests here
|
||||
block:
|
||||
const
|
||||
a = """
|
||||
Version $1|
|
||||
Compiled at: $2, $3
|
||||
""" % [NimVersion & spaces(44-len(NimVersion)), CompileDate, CompileTime]
|
||||
let b = $a
|
||||
doAssert CompileTime in b
|
||||
doAssert NimVersion in b
|
||||
|
||||
static: main()
|
||||
main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue