diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DuplicatedFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DuplicatedFunctions.java index 03d2eb7c7da92316ad144a9ec3957f4da0245805..eea62355abc09e830a188d4c2697a12f89d725eb 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DuplicatedFunctions.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/DuplicatedFunctions.java @@ -46,8 +46,12 @@ public class DuplicatedFunctions { private final ConditionProfile incomparable = ConditionProfile.createBinaryProfile(); protected void casts(CastBuilder casts) { - casts.arg("x").mustBe(nullValue().or(abstractVectorValue()), RError.SHOW_CALLER, RError.Message.GENERIC, - "duplicated() applies only to vectors").asVector(); + // these are similar to those in DuplicatedFunctions.java + casts.arg("x").mustBe(nullValue().or(abstractVectorValue()), RError.SHOW_CALLER, RError.Message.APPLIES_TO_VECTORS, + "duplicated()").asVector(); + // not much more can be done for incomparables as it is either a vector of incomparable + // values or a (single) logical value + casts.arg("incomparables").asVector(true); casts.arg("fromLast").asLogicalVector().findFirst(RRuntime.LOGICAL_FALSE); } @@ -76,7 +80,7 @@ public class DuplicatedFunctions { } } - @RBuiltin(name = "duplicated", kind = INTERNAL, parameterNames = {"x", "imcomparables", "fromLast", "nmax"}, behavior = PURE) + @RBuiltin(name = "duplicated", kind = INTERNAL, parameterNames = {"x", "incomparables", "fromLast", "nmax"}, behavior = PURE) public abstract static class Duplicated extends Adapter { @Override @@ -123,7 +127,7 @@ public class DuplicatedFunctions { } } - @RBuiltin(name = "anyDuplicated", kind = INTERNAL, parameterNames = {"x", "imcomparables", "fromLast"}, behavior = PURE) + @RBuiltin(name = "anyDuplicated", kind = INTERNAL, parameterNames = {"x", "incomparables", "fromLast"}, behavior = PURE) public abstract static class AnyDuplicated extends Adapter { @Override diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_duplicated.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_duplicated.java index a1eb5d73a1b0199b0680eabeb57f843bdd75477a..3040237600c6d490b85893e20465e5eec7e6755f 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_duplicated.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/builtins/TestBuiltin_duplicated.java @@ -133,7 +133,7 @@ public class TestBuiltin_duplicated extends TestBase { assertEval("{ x<-quote(f(7, 42)); duplicated(x) }"); assertEval("{ x<-function() 42; duplicated(x) }"); - assertEval(Output.IgnoreErrorMessage, "{ duplicated(c(1,2,1), incomparables=function() 42) }"); + assertEval(Output.IgnoreErrorContext, "{ duplicated(c(1,2,1), incomparables=function() 42) }"); } }