It should just work.
    
    
    type
      A = ref object of RootObj
      B = ref object of A
      C = ref object of B
    
    proc foo(xs: openarray[B]) =
      for x in xs:
        if x of C: echo "C"
        elif x of B: echo "B"
        elif x of A: echo "A"
    
    foo([C(), B(), C()])
    
    
    Run

output 
    
    
    C
    B
    C
    
    
    Run

Reply via email to