Example #1
0
 def checkfunction(translator):
     # make sure that there is a sensible comparison defined on the
     # symbolics
     bk = translator.annotator.bookkeeper
     rtyper = translator.rtyper
     base_classdef = bk.getuniqueclassdef(PBase)
     base_vtable = rclass.getclassrepr(rtyper, base_classdef).getruntime(CLASSTYPE)
     sub3_classdef = bk.getuniqueclassdef(Sub3)
     sub3_vtable = rclass.getclassrepr(rtyper, sub3_classdef).getruntime(CLASSTYPE)
     assert ll_issubclass(sub3_vtable, base_vtable)
     assert not ll_issubclass(base_vtable, sub3_vtable)
Example #2
0
 def checkfunction(translator):
     # make sure that there is a sensible comparison defined on the
     # symbolics
     bk = translator.annotator.bookkeeper
     rtyper = translator.rtyper
     base_classdef = bk.getuniqueclassdef(PBase)
     base_vtable = rclass.getclassrepr(rtyper,
                                       base_classdef).getruntime()
     sub3_classdef = bk.getuniqueclassdef(Sub3)
     sub3_vtable = rclass.getclassrepr(rtyper,
                                       sub3_classdef).getruntime()
     assert ll_issubclass(sub3_vtable, base_vtable)
     assert not ll_issubclass(base_vtable, sub3_vtable)
Example #3
0
 def subclassOf(self, cpu, clsbox1, clsbox2):
     adr = clsbox2.getaddr(cpu)
     bounding_class = llmemory.cast_adr_to_ptr(adr, rclass.CLASSTYPE)
     adr = clsbox1.getaddr(cpu)
     real_class = llmemory.cast_adr_to_ptr(adr, rclass.CLASSTYPE)
     return rclass.ll_issubclass(real_class, bounding_class)