Files
Nim/tests/whenstmt/twhen_macro.nim
Saem Ghani 2aba116bbc when statements branches exit early (#17143)
When statement branches exit early outside of nimvm. In nimvm it seems that all
sides of the branches must be evaluated as the code gen happens at a later
stage, this remains intact.
2021-02-22 12:27:23 +01:00

24 lines
477 B
Nim

import macros
discard """
output: '''
when - test
'''
"""
# test that when stmt works from within a macro
macro output(s: string, xs: varargs[untyped]): auto =
result = quote do:
when compiles(`s`):
"when - " & `s`
elif compiles(`s`):
"elif - " & `s`
# should never get here so this should not break
broken.xs
else:
"else - " & `s`
# should never get here so this should not break
more.broken.xs
echo output("test")