From 87b2df887048cc005ddc94fc56bddd2dd3f888d5 Mon Sep 17 00:00:00 2001 From: stepan <stepan.sindelar@oracle.com> Date: Thu, 4 Aug 2016 11:25:13 +0200 Subject: [PATCH] CharMatch converted to cast pipelines --- .../com/oracle/truffle/r/nodes/builtin/base/CharMatch.java | 5 +++++ .../src/com/oracle/truffle/r/runtime/RError.java | 1 + 2 files changed, 6 insertions(+) diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CharMatch.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CharMatch.java index b8d013e510..335418deeb 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CharMatch.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/CharMatch.java @@ -10,12 +10,15 @@ */ package com.oracle.truffle.r.nodes.builtin.base; +import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.stringValue; import static com.oracle.truffle.r.runtime.builtins.RBehavior.PURE; import static com.oracle.truffle.r.runtime.builtins.RBuiltinKind.INTERNAL; import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.r.nodes.builtin.CastBuilder; import com.oracle.truffle.r.nodes.builtin.RBuiltinNode; +import com.oracle.truffle.r.runtime.RError; +import com.oracle.truffle.r.runtime.RError.Message; import com.oracle.truffle.r.runtime.RRuntime; import com.oracle.truffle.r.runtime.builtins.RBuiltin; import com.oracle.truffle.r.runtime.data.RDataFactory; @@ -27,6 +30,8 @@ public abstract class CharMatch extends RBuiltinNode { @Override protected void createCasts(CastBuilder casts) { + casts.arg("x").mustBe(stringValue(), RError.NO_CALLER, Message.ARG_IS_NOT_OF_MODE, "character"); + casts.arg("table").mustBe(stringValue(), RError.NO_CALLER, Message.ARG_IS_NOT_OF_MODE, "character"); casts.arg("noMatch").asIntegerVector().findFirst(RRuntime.INT_NA); } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RError.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RError.java index 6e5a87fb0c..be17587293 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RError.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RError.java @@ -694,6 +694,7 @@ public final class RError extends RuntimeException { ROWSUM_NAMES_NOT_CHAR("row names are not character"), ROWSUM_NON_NUMERIC("non-numeric matrix in rowsum(): this should not happen"), ARGUMENTS_REQUIRED_COUNT("%d arguments to '%s' which requires %d"), + ARG_IS_NOT_OF_MODE("argument is not of mode %s"), ARGUMENT_LENGTH_0("argument of length 0"), MUST_BE_VECTOR_BUT_WAS("'%s' must be of a vector type, was '%s'"), SYSTEM_CHAR_ARG("non-empty character argument expected"), -- GitLab