blob: 1a21315c8004c8001702139400544c54cddeb1f3 (
plain) (
tree)
|
|
# test the new 'compiles' feature:
template supports(opr, x: untyped): bool =
compiles(opr(x)) or compiles(opr(x, x))
template ok(x) =
static:
assert(x)
template no(x) =
static:
assert(not x)
type
TObj = object
var
myObj {.compileTime.}: TObj
ok supports(`==`, myObj)
ok supports(`==`, 45)
no supports(`++`, 34)
ok supports(`not`, true)
ok supports(`+`, 34)
no compiles(4+5.0 * "hallo")
no compiles(undeclaredIdentifier)
no compiles(undeclaredIdentifier)
|