Skip to content
Snippets Groups Projects
Commit fbe1e327 authored by Miloslav Metelka's avatar Miloslav Metelka
Browse files

Improved casts and removed extra specialization in utf8ToInt() builtin..

parent 83b28b9f
No related branches found
No related tags found
No related merge requests found
......@@ -23,6 +23,7 @@
package com.oracle.truffle.r.nodes.builtin.base;
import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.notEmpty;
import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.size;
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;
......@@ -42,7 +43,8 @@ public abstract class Utf8ToInt extends RBuiltinNode {
@Override
protected void createCasts(CastBuilder casts) {
casts.arg(0, "x").defaultError(RError.SHOW_CALLER, RError.Message.ARG_MUST_BE_CHARACTER_VECTOR_LENGTH_ONE, "x").mustBe(stringValue()).asStringVector().mustBe(notEmpty());
casts.arg(0, "x").defaultError(RError.SHOW_CALLER, RError.Message.ARG_MUST_BE_CHARACTER_VECTOR_LENGTH_ONE, "x").mustBe(stringValue()).asStringVector().mustBe(notEmpty()).shouldBe(size(1),
RError.SHOW_CALLER, RError.Message.ARG_SHOULD_BE_CHARACTER_VECTOR_LENGTH_ONE).findFirst();
}
@Specialization
......@@ -62,12 +64,4 @@ public abstract class Utf8ToInt extends RBuiltinNode {
return ret;
}
@Specialization
protected RAbstractIntVector utf8ToInt(RAbstractStringVector x) {
if (x.getLength() > 1) {
RError.warning(RError.SHOW_CALLER, RError.Message.ARG_SHOULD_BE_CHARACTER_VECTOR_LENGTH_ONE);
}
return utf8ToInt(x.getDataAt(0));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment