fork download
  1. template iff*[T](a: T, t: typedesc, e: stmt): stmt {.immediate.} =
  2. if a of t:
  3. let a = t(a)
  4. e
  5.  
  6. type
  7. Parent = ref object of RootObj
  8. SonA = ref object of Parent
  9.  
  10. method doStuff(a: SonA) = echo "Works"
  11.  
  12. # EXAMPLE
  13. proc create: Parent = SonA()
  14. let p: RootRef = create()
  15.  
  16. iff p, SonA:
  17. doStuff p
Success #stdin #stdout 0s 2420KB
stdin
Standard input is empty
stdout
Works