123456789101112131415161718192021 |
- # test sym digest is computable at compile time
- import macros, algorithm
- import md5
- macro testmacro(s: typed{nkSym}): string =
- let s = getMD5(signaturehash(s) & " - " & symBodyHash(s))
- result = newStrLitNode(s)
- macro testmacro(s: typed{nkOpenSymChoice|nkClosedSymChoice}): string =
- var str = ""
- for sym in s:
- str &= symBodyHash(sym)
- result = newStrLitNode(getMD5(str))
- # something recursive and/or generic
- discard testmacro(testmacro)
- discard testmacro(`[]`)
- discard testmacro(binarySearch)
- discard testmacro(sort)
|