123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- discard """
- nimout: '''
- nimvm - when
- nimvm - whenElif
- nimvm - whenElse
- '''
- output: '''
- when
- whenElif
- whenElse
- '''
- """
- # test both when and when nimvm to ensure proper evaluation
- proc compileOrRuntimeProc(s: string) =
- when nimvm:
- echo "nimvm - " & s
- else:
- echo s
- template output(s: string) =
- static:
- compileOrRuntimeProc(s)
- compileOrRuntimeProc(s)
- when compiles(1):
- output("when")
- elif compiles(2):
- output("fail - whenElif")
- else:
- output("fail - whenElse")
- when compiles(nonexistent):
- output("fail - when")
- elif compiles(1):
- output("whenElif")
- else:
- output("fail - whenElse")
- when compiles(nonexistent):
- output("fail - when")
- elif compiles(nonexistent):
- output("fail - whenElif")
- else:
- output("whenElse")
|