* Fixes 5034 * address comments
This commit is contained in:
parent
369a7d1246
commit
06d50bfd4c
2 changed files with 52 additions and 4 deletions
31
tests/macros/tmacrogetimpl.nim
Normal file
31
tests/macros/tmacrogetimpl.nim
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
import macros
|
||||
|
||||
# bug #5034
|
||||
|
||||
macro copyImpl(srsProc: typed, toSym: untyped) =
|
||||
result = copyNimTree(getImplTransformed(srsProc))
|
||||
result[0] = ident $toSym.toStrLit()
|
||||
|
||||
proc foo1(x: float, one: bool = true): float =
|
||||
if one:
|
||||
return 1'f
|
||||
result = x
|
||||
|
||||
proc bar1(what: string): string =
|
||||
## be a little more adversarial with `skResult`
|
||||
proc buzz: string =
|
||||
result = "lightyear"
|
||||
if what == "buzz":
|
||||
result = "buzz " & buzz()
|
||||
else:
|
||||
result = what
|
||||
return result
|
||||
|
||||
copyImpl(foo1, foo2)
|
||||
doAssert foo1(1'f) == 1.0
|
||||
doAssert foo2(10.0, false) == 10.0
|
||||
doAssert foo2(10.0) == 1.0
|
||||
|
||||
copyImpl(bar1, bar2)
|
||||
doAssert bar1("buzz") == "buzz lightyear"
|
||||
doAssert bar1("macros") == "macros"
|
||||
Loading…
Add table
Add a link
Reference in a new issue