Exemplo n.º 1
0
 /**
  * Handles an R error with the most general argument signature. All other facade variants delegate
  * to this method.
  *
  * <p>Note that the method never actually returns a result, but the throws the error directly.
  * However, the signature has a return type of {@link RError} to allow callers to use the idiom
  * {@code throw error(...)} to indicate the control transfer. It is entirely possible that, due to
  * condition handlers, the error will not actually be thrown.
  *
  * @param node {@code RNode} of the code throwing the error, or {@link #NO_NODE} if not available.
  *     If {@code NO_NODE} an attempt will be made to identify the call context from the currently
  *     active frame.
  * @param msg a {@link Message} instance specifying the error
  * @param args arguments for format specifiers in the message string
  */
 @TruffleBoundary
 private static RError error0(RBaseNode node, Message msg, Object... args) {
   assert node != null;
   // thrown from a builtin specified by "node"
   RErrorHandling.signalError(node, msg, args);
   return RErrorHandling.errorcallDflt(node, msg, args);
 }
Exemplo n.º 2
0
 @TruffleBoundary
 protected RErrorException(RError.Message msg, Object[] args) {
   super(RErrorHandling.formatMessage(msg, args), null);
   this.msg = msg;
   this.args = args;
 }
Exemplo n.º 3
0
 @TruffleBoundary
 public static RError stop(boolean showCall, RBaseNode node, Message msg, Object arg) {
   assert node != null;
   RErrorHandling.signalError(node, msg, arg);
   return RErrorHandling.errorcallDflt(showCall, node, msg, arg);
 }
Exemplo n.º 4
0
 @TruffleBoundary
 public static void warning(RBaseNode node, Message msg, Object... args) {
   assert node != null;
   RErrorHandling.warningcall(true, node, msg, args);
 }