diff options
Diffstat (limited to 'tests/compiles/tcompiles.nim')
-rw-r--r-- | tests/compiles/tcompiles.nim | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/compiles/tcompiles.nim b/tests/compiles/tcompiles.nim new file mode 100644 index 000000000..d0fccdaff --- /dev/null +++ b/tests/compiles/tcompiles.nim @@ -0,0 +1,26 @@ +# test the new 'compiles' feature: + +template supports(opr, x: expr): bool {.immediate.} = + compiles(opr(x)) or compiles(opr(x, x)) + +template ok(x: expr): stmt = + static: assert(x) + +template no(x: expr): stmt = + 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") + |