From 90880c0a76083f302964c584e718e15dd9072657 Mon Sep 17 00:00:00 2001 From: Zbynek Slajchrt <zbynek.slajchrt@oracle.com> Date: Mon, 12 Feb 2018 19:57:06 +0100 Subject: [PATCH] A missing spec added --- .../truffle/r/nodes/builtin/base/Sprintf.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Sprintf.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Sprintf.java index ebd98fae25..52c05fa2ed 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Sprintf.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Sprintf.java @@ -47,6 +47,7 @@ import com.oracle.truffle.r.runtime.data.RNull; import com.oracle.truffle.r.runtime.data.RStringVector; import com.oracle.truffle.r.runtime.data.model.RAbstractDoubleVector; import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector; +import com.oracle.truffle.r.runtime.data.model.RAbstractLogicalVector; import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector; import com.oracle.truffle.r.runtime.data.model.RAbstractVector; @@ -175,6 +176,22 @@ public abstract class Sprintf extends RBuiltinNode.Arg2 { return RDataFactory.createStringVector(r, RDataFactory.COMPLETE_VECTOR); } + @Specialization(guards = "fmtLengthOne(fmt)") + @TruffleBoundary + protected RStringVector sprintf(RAbstractStringVector fmt, RAbstractLogicalVector x) { + return sprintf(fmt.getDataAt(0), x); + } + + @Specialization + @TruffleBoundary + protected RStringVector sprintf(String fmt, RAbstractLogicalVector x) { + String[] r = new String[x.getLength()]; + for (int k = 0; k < r.length; k++) { + r[k] = format(fmt, x.getDataAt(k)); + } + return RDataFactory.createStringVector(r, RDataFactory.COMPLETE_VECTOR); + } + @Specialization(guards = "fmtLengthOne(fmt)") @TruffleBoundary protected RStringVector sprintf(RAbstractStringVector fmt, RAbstractStringVector x) { -- GitLab