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 ll_isinstance(inst, class_): c1 = ootype.classof(inst) return ootype.subclassof(c1, class_)
def op_classof(inst): return ootype.classof(inst)
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