@Specialization @TruffleBoundary protected RNull invokeRestart(RList restart, Object args) { checkLength(restart); if (RErrorHandling.invokeRestart(restart, args) == null) { throw RError.error(this, RError.Message.RESTART_NOT_ON_STACK); } else { return RNull.instance; // not reached } }
@Specialization @TruffleBoundary protected Object addCondHands( RAbstractStringVector classes, RList handlers, REnvironment parentEnv, Object target, byte calling) { if (classes.getLength() != handlers.getLength()) { throw RError.error(this, RError.Message.BAD_HANDLER_DATA); } return RErrorHandling.createHandlers(classes, handlers, parentEnv, target, calling); }
@Specialization @TruffleBoundary protected RNull printDeferredWarnings() { RErrorHandling.printDeferredWarnings(); return RNull.instance; }
@Specialization protected Object dfltStop(String message, Object call) { RErrorHandling.dfltStop(message, call); return RNull.instance; }
@Specialization protected RNull dfltWarn(String msg, Object call) { RErrorHandling.dfltWarn(msg, call); return RNull.instance; }
@Specialization protected RNull seterrmessage(String msg) { RErrorHandling.seterrmessage(msg); return RNull.instance; }
@Specialization protected String geterrmessage() { return RErrorHandling.geterrmessage(); }
@Specialization protected RNull signalCondition(RList condition, RAbstractStringVector msg, Object call) { RErrorHandling.signalCondition(condition, msg.getDataAt(0), call); return RNull.instance; }
@Specialization protected Object getRestart(int index) { Object result = RErrorHandling.getRestart(index); return result; }
@Specialization protected Object addRestart(RList restart) { checkLength(restart); RErrorHandling.addRestart(restart); return RNull.instance; }