From 34efc2cdf9ac515fae55ec2cc9d6efac37f63398 Mon Sep 17 00:00:00 2001 From: Araq Date: Fri, 20 Jul 2012 16:53:01 +0200 Subject: [PATCH] better test for 'system.compiles' --- tests/compile/tcompiles.nim | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/tests/compile/tcompiles.nim b/tests/compile/tcompiles.nim index 4b72d8bd8b..1a1d947b1c 100644 --- a/tests/compile/tcompiles.nim +++ b/tests/compile/tcompiles.nim @@ -1,12 +1,31 @@ discard """ - output: '''no''' + output: '''obj has '==': false +int has '==': true +false +true +true +no''' """ # test the new 'compiles' feature: +template supports(opr, x: expr): bool {.immediate.} = + compiles(opr(x)) or compiles(opr(x, x)) + +type + TObj = object + +var + myObj {.compileTime.}: TObj + +echo "obj has '==': ", supports(`==`, myObj) +echo "int has '==': ", supports(`==`, 45) + +echo supports(`++`, 34) +echo supports(`not`, true) +echo supports(`+`, 34) + when compiles(4+5.0 * "hallo"): echo "yes" else: echo "no" - -