diff --git a/tests/template/tgetast_typeliar.nim b/tests/template/tgetast_typeliar.nim new file mode 100644 index 0000000000..c9a6125823 --- /dev/null +++ b/tests/template/tgetast_typeliar.nim @@ -0,0 +1,23 @@ + +# just ensure this keeps compiling: + +import macros + +proc error(s: string) = quit s + +macro assertOrReturn*(condition: bool; message: string): typed = + var line = condition.lineInfo() + result = quote do: + block: + if not likely(`condition`): + error("Assertion failed: " & $(`message`) & "\n" & `line`) + return + +macro assertOrReturn*(condition: bool): typed = + var message = condition.toStrLit() + result = getAst assertOrReturn(condition, message) + +proc point*(size: int16): tuple[x, y: int16] = + # returns random point in square area with given `size` + + assertOrReturn size > 0