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()
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
discard """
|
||||
action: compile
|
||||
"""
|
||||
|
||||
import strutils
|
||||
|
||||
const
|
||||
HelpText = """
|
||||
+-----------------------------------------------------------------+
|
||||
| Maintenance program for Nim |
|
||||
| Version $1|
|
||||
| (c) 2012 Andreas Rumpf |
|
||||
+-----------------------------------------------------------------+
|
||||
Compiled at: $2, $3
|
||||
|
||||
Usage:
|
||||
koch [options] command [options for command]
|
||||
Options:
|
||||
--force, -f, -B, -b forces rebuild
|
||||
--help, -h shows this help and quits
|
||||
Possible Commands:
|
||||
boot [options] bootstraps with given command line options
|
||||
clean cleans Nim project; removes generated files
|
||||
web generates the website
|
||||
csource [options] builds the C sources for installation
|
||||
zip builds the installation ZIP package
|
||||
inno builds the Inno Setup installer
|
||||
""" % [NimVersion & spaces(44-len(NimVersion)),
|
||||
CompileDate, CompileTime]
|
||||
|
||||
echo HelpText
|
||||
|
|
@ -9,16 +9,6 @@ import os
|
|||
import math
|
||||
import strutils
|
||||
|
||||
template forceConst(a: untyped): untyped =
|
||||
## Force evaluation at CT, useful for example here:
|
||||
## `callFoo(forceConst(getBar1()), getBar2())`
|
||||
## instead of:
|
||||
## block:
|
||||
## const a = getBar1()
|
||||
## `callFoo(a, getBar2())`
|
||||
const ret = a
|
||||
ret
|
||||
|
||||
static:
|
||||
# TODO: add more tests
|
||||
block: #getAppFilename, gorgeEx, gorge
|
||||
|
|
@ -51,6 +41,6 @@ static:
|
|||
|
||||
block:
|
||||
# Check against bugs like #9176
|
||||
doAssert getCurrentCompilerExe() == forceConst(getCurrentCompilerExe())
|
||||
doAssert getCurrentCompilerExe() == getCurrentCompilerExe().static
|
||||
if false: #pending #9176
|
||||
doAssert gorgeEx("unexistant") == forceConst(gorgeEx("unexistant"))
|
||||
doAssert gorgeEx("unexistant") == gorgeEx("unexistant").static
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue