summary refs log tree commit diff stats
path: root/tests/compiles
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-01-13 02:10:03 +0100
committerAraq <rumpf_a@web.de>2014-01-13 02:10:03 +0100
commit20b5f31c03fb556ec0aa2428a40adbac004d8987 (patch)
tree58086941e7d6bb8f480ca1173a95722ada9435b2 /tests/compiles
parent51ee524109cf7e3e86c676bc1676063a01bfd979 (diff)
downloadNim-20b5f31c03fb556ec0aa2428a40adbac004d8987.tar.gz
new tester; all tests categorized
Diffstat (limited to 'tests/compiles')
-rw-r--r--tests/compiles/tcompiles.nim26
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")
+