def get_exception(self): exc_value = self.get_inputargs().get_exc_value() if exc_value: exc_obj = dotnet.cast_from_native_object(exc_value) exc_inst = ootype.cast_from_object(ootype.ROOT, exc_obj) cls = ootype.classof(exc_value) return ootype.cast_to_object(cls) return ootype.cast_to_object(ootype.nullruntimeclass)
def ll_inst_type(obj): if obj: return ootype.classof(obj) else: # type(None) -> NULL (for now) return ootype.nullruntimeclass
def get_zero_division_error(self): exc_type = ootype.cast_to_object(ootype.classof(self.ll_zero_exc)) exc_value = ootype.cast_to_object(self.ll_zero_exc) return exc_type, exc_value
def get_overflow_error(self): exc_type = ootype.cast_to_object(ootype.classof(self.ll_ovf_exc)) exc_value = ootype.cast_to_object(self.ll_ovf_exc) return exc_type, exc_value
def get_class_of_box(self, box): root = box.getref(ootype.ROOT) return ootype.classof(root)
def ll_isinstance(inst, class_): c1 = ootype.classof(inst) return ootype.subclassof(c1, class_)
def cls_of_box(self, cpu, box): obj = box.getref(ootype.ROOT) oocls = ootype.classof(obj) return history.ConstObj(ootype.cast_to_object(oocls))
def get_typeptr(self, obj): return ootype.classof(obj)
def op_classof(inst): return ootype.classof(inst)