tgettype.nim 596 B

123456789101112131415161718192021222324252627282930
  1. discard """
  2. output: '''
  3. (ObjectTy (Empty) (Sym "Model") (RecList (Sym "name") (Sym "password")))
  4. (BracketExpr (Sym "typeDesc") (Sym "User"))
  5. '''
  6. """
  7. import strutils, macros
  8. type
  9. Model = object of RootObj
  10. User = object of Model
  11. name : string
  12. password : string
  13. macro testUser: string =
  14. result = newLit(User.getType.lispRepr)
  15. macro testGeneric(T: typedesc[Model]): string=
  16. result = newLit(T.getType.lispRepr)
  17. echo testUser
  18. echo User.testGeneric
  19. macro assertVoid(e: typed): untyped =
  20. assert(getTypeInst(e).typeKind == ntyVoid)
  21. proc voidProc() = discard
  22. assertVoid voidProc()