extern "C" Box* intDiv(BoxedInt* lhs, Box *rhs) { assert(lhs->cls == int_cls); if (rhs->cls == int_cls) { return intDivInt(lhs, static_cast<BoxedInt*>(rhs)); } else if (rhs->cls == float_cls) { return intDivFloat(lhs, static_cast<BoxedFloat*>(rhs)); } else { return NotImplemented; } }
extern "C" Box* intDiv(BoxedInt* lhs, Box* rhs) { if (!isSubclass(lhs->cls, int_cls)) raiseExcHelper(TypeError, "descriptor '__div__' requires a 'int' object but received a '%s'", getTypeName(lhs)); if (isSubclass(rhs->cls, int_cls)) { return intDivInt(lhs, static_cast<BoxedInt*>(rhs)); } else if (rhs->cls == float_cls) { return intDivFloat(lhs, static_cast<BoxedFloat*>(rhs)); } else { return NotImplemented; } }