tanonprocresem.nim 954 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. block: # issue #19019
  2. proc start(draw:proc=(proc()=echo "default"), init:proc=(proc()=echo "default"), reshape:proc=(proc()=echo "default"))=discard
  3. start()
  4. block: # issue #14067
  5. type
  6. Result[T, E] = object
  7. DataProc = proc(val: openArray[byte])
  8. GetProc = proc (onData: DataProc): Result[bool, cstring]
  9. func get[T, E](self: Result[T, E]): T =
  10. discard
  11. template `[]`[T, E](self: Result[T, E]): T =
  12. self.get()
  13. proc testKVStore() =
  14. var v: seq[byte]
  15. var p: GetProc
  16. discard p(proc(data: openArray[byte]) =
  17. v = @data
  18. )[]
  19. if false: testKVStore()
  20. import std/macros
  21. block: # issue #15004
  22. macro fn(fun:untyped):untyped =
  23. newTree(nnkTupleConstr, newLit"first", fun)
  24. macro fn(key:string, fun:untyped):untyped =
  25. newTree(nnkTupleConstr, newLit"second", fun)
  26. let c = fn(proc(count:int):string =
  27. return "x = " & $count
  28. )
  29. doAssert c[0] == "first"
  30. doAssert c[1](123) == "x = 123"