diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Cat.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Cat.java index 820ebe68374842f7955c7060ed0fea3dffdbd603..6441f318336fdcd7c3cec5a646d2878ee05a6ad4 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Cat.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Cat.java @@ -27,9 +27,9 @@ import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.asInteger; import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.defaultValue; import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.gt0; import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.instanceOf; +import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.logicalValue; import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.nullValue; import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.numericValue; -import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.scalarLogicalValue; import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.singleElement; import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.stringValue; import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.toBoolean; @@ -80,7 +80,7 @@ public abstract class Cat extends RBuiltinNode { casts.arg("sep").mustBe(stringValue(), RError.Message.INVALID_SEP); casts.arg("fill").mustBe(numericValue()).asVector().mustBe(singleElement()).findFirst().mustBe(nullValue().not()).shouldBe(instanceOf(Byte.class).or(instanceOf(Integer.class).and(gt0())), - Message.NON_POSITIVE_FILL).mapIf(scalarLogicalValue(), asBoolean(), asInteger()); + Message.NON_POSITIVE_FILL).mapIf(logicalValue(), asBoolean(), asInteger()); casts.arg("labels").map(defaultValue(RDataFactory.createStringVector(0))).mustBe(stringValue()).asStringVector(); diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConnectionFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConnectionFunctions.java index 28fd1e0032f707972b68dc481269d8c0208723fe..f8874611fb802b6b6ff3752e363234c4a9952960 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConnectionFunctions.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ConnectionFunctions.java @@ -303,7 +303,7 @@ public abstract class ConnectionFunctions { @Override protected void createCasts(CastBuilder casts) { - casts.arg("host").mustBe(scalarStringValue()); + casts.arg("host").mustBe(stringValue()).asStringVector().findFirst(); casts.arg("port").asIntegerVector().findFirst().notNA().mustBe(gte(0)); casts.arg("server").asLogicalVector().findFirst().notNA().map(toBoolean()); Casts.open(casts); diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/InheritsBuiltin.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/InheritsBuiltin.java index 68d4166c8e20bdc7d52e2e5592c32e19726a4b2a..e6c8ec77d4dadf8564670ecbd855c7143a1cf207 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/InheritsBuiltin.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/InheritsBuiltin.java @@ -11,7 +11,7 @@ package com.oracle.truffle.r.nodes.builtin.base; -import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.scalarLogicalValue; +import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.logicalValue; import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.stringValue; import static com.oracle.truffle.r.nodes.builtin.CastBuilder.Predef.toBoolean; import static com.oracle.truffle.r.runtime.RError.Message.NOT_CHARACTER_VECTOR; @@ -37,7 +37,7 @@ public abstract class InheritsBuiltin extends RBuiltinNode { @Override protected void createCasts(CastBuilder casts) { casts.arg("what").mustBe(stringValue(), NOT_CHARACTER_VECTOR, "what"); - casts.arg("which").mustBe(scalarLogicalValue(), NOT_LEN_ONE_LOGICAL_VECTOR, "which").map(toBoolean()); + casts.arg("which").mustBe(logicalValue(), NOT_LEN_ONE_LOGICAL_VECTOR, "which").asLogicalVector().findFirst().map(toBoolean()); } @Specialization diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/MakeUnique.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/MakeUnique.java index b63742e60d6632a257682dfb98902a994932e1f0..d84b861cbf0da6373101f2da5b343d0dd6e95952 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/MakeUnique.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/MakeUnique.java @@ -47,7 +47,7 @@ public abstract class MakeUnique extends RBuiltinNode { @Override protected void createCasts(CastBuilder casts) { casts.arg("names").mustBe(stringValue(), RError.SHOW_CALLER, RError.Message.NOT_CHARACTER_VECTOR, "names"); - casts.arg("sep").mustBe(scalarStringValue(), RError.SHOW_CALLER, RError.Message.MUST_BE_STRING, "sep"); + casts.arg("sep").mustBe(stringValue(), RError.SHOW_CALLER, RError.Message.MUST_BE_STRING, "sep").asStringVector().findFirst(); } diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/OptionsFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/OptionsFunctions.java index 79760e6605bc96ab0ecdb3f51ebca96d3a3fefd0..3a6bc80e944456c0f3c0a92a392589bb391cdd28 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/OptionsFunctions.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/OptionsFunctions.java @@ -173,7 +173,7 @@ public class OptionsFunctions { @Override protected void createCasts(CastBuilder casts) { - casts.arg("x").mustBe(scalarStringValue(), RError.SHOW_CALLER, RError.Message.MUST_BE_STRING, "x"); + casts.arg("x").mustBe(stringValue(), RError.SHOW_CALLER, RError.Message.MUST_BE_STRING, "x").asStringVector().findFirst(); } @TruffleBoundary diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ReadREnviron.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ReadREnviron.java index 243304a39bce4cedce4845d4cc75d1db9d069c25..dc155922033fcc9e97304de53e5470078165a209 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ReadREnviron.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/ReadREnviron.java @@ -44,7 +44,7 @@ public abstract class ReadREnviron extends RBuiltinNode { @Override protected void createCasts(CastBuilder casts) { - casts.arg("x").mustBe(scalarStringValue(), RError.SHOW_CALLER, RError.Message.ARGUMENT_MUST_BE_STRING, "x"); + casts.arg("x").mustBe(stringValue(), RError.SHOW_CALLER, RError.Message.ARGUMENT_MUST_BE_STRING, "x").asStringVector().findFirst(); } @TruffleBoundary diff --git a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/builtin/CastBuilderTest.java b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/builtin/CastBuilderTest.java index 643b64da858064f69a299beda665b8937737063e..d82bd7c0a28350b311a03faf2dc53c20aece7afa 100644 --- a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/builtin/CastBuilderTest.java +++ b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/builtin/CastBuilderTest.java @@ -363,6 +363,7 @@ public class CastBuilderTest { assertEquals("A", cast(RRuntime.DOUBLE_NA)); } + @SuppressWarnings("deprecation") public InitialPhaseBuilder<String> matchStringArg(InitialPhaseBuilder<Object> phaseBuilder, String... optValues) { ArgumentValueFilter<String> opts = null; for (String opt : optValues) { @@ -371,6 +372,7 @@ public class CastBuilderTest { return phaseBuilder.mustBe(scalarStringValue().and(opts)); } + @SuppressWarnings("deprecation") @Test public void testMatchArg() { @@ -453,6 +455,7 @@ public class CastBuilderTest { } } + @SuppressWarnings("deprecation") @Test public void testSample5() { ArgumentTypeFilter<Object, Object> complexOrExpr = integerValue().or(doubleValue()).or(complexValue()).or(logicalValue()); diff --git a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/TestCasts.java b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/TestCasts.java index 494f5e2116c721d4c45615faa7f51a370d209f15..1a8c6e4272263f78eab2371f775570e1d57d4fb4 100644 --- a/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/TestCasts.java +++ b/com.oracle.truffle.r.nodes.test/src/com/oracle/truffle/r/nodes/casts/TestCasts.java @@ -237,6 +237,7 @@ public class TestCasts extends TestBase { final boolean mustBeResultCompilationConstant; + @SuppressWarnings("deprecation") protected Root(String name, boolean mustBeResultCompilationConstant) { super(name, new CastBuilder().arg(0).mapIf(scalarIntegerValue(), constant(10)).builder().getCasts()[0]); this.mustBeResultCompilationConstant = mustBeResultCompilationConstant; @@ -343,6 +344,7 @@ public class TestCasts extends TestBase { public void testComplexPipeline1() { class Root extends TestRootNode<CastNode> { + @SuppressWarnings("deprecation") protected Root(String name) { super(name, new CastBuilder().arg(0).mustBe(numericValue()).asVector().mustBe(singleElement()).findFirst().mustBe(nullValue().not()).shouldBe( ValuePredicateArgumentFilterSampler.fromLambdaWithResTypes(x -> x instanceof Byte || x instanceof Integer && ((Integer) x) > 0, Object.class), @@ -404,6 +406,7 @@ public class TestCasts extends TestBase { public void testFilterAndExpression() { class Root extends TestRootNode<CastNode> { + @SuppressWarnings("deprecation") protected Root(String name) { super(name, new CastBuilder().arg(0).mustBe(scalarIntegerValue()).shouldBe(gt0().and(lt(10))).builder().getCasts()[0]); } @@ -422,6 +425,7 @@ public class TestCasts extends TestBase { public void testFilterNotAndExpression() { class Root extends TestRootNode<CastNode> { + @SuppressWarnings("deprecation") protected Root(String name) { super(name, new CastBuilder().arg(0).mustBe(scalarIntegerValue()).shouldBe(gt0().and(lt(10)).not()).builder().getCasts()[0]); } @@ -440,6 +444,7 @@ public class TestCasts extends TestBase { public void testComplexPipeline3() { class Root extends TestRootNode<CastNode> { + @SuppressWarnings("deprecation") protected Root(String name) { super(name, new CastBuilder().arg(0).mustBe(numericValue()).asVector().mustBe(singleElement()).findFirst().mustBe(nullValue().not()).shouldBe( instanceOf(Byte.class).or(instanceOf(Integer.class).and(gt0())), Message.NON_POSITIVE_FILL).mapIf(scalarLogicalValue(), asBoolean(), diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/CastBuilder.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/CastBuilder.java index 44086d1e70338fcb9db09c2fe057a8d2bbe3d3c2..ac009a5b9e03f97eca39f486c80c8f22ef507024 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/CastBuilder.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/builtin/CastBuilder.java @@ -1049,22 +1049,42 @@ public final class CastBuilder { return numericValue().or(stringValue()).or(complexValue()).or(rawValue()).or(instanceOf(RAbstractListVector.class)); } + /** + * @deprecated tests for scalar types are dangerous + */ + @Deprecated public static TypePredicateArgumentFilter<Object, String> scalarStringValue() { return predefFilters().scalarStringValue(); } + /** + * @deprecated tests for scalar types are dangerous + */ + @Deprecated public static TypePredicateArgumentFilter<Object, Integer> scalarIntegerValue() { return predefFilters().scalarIntegerValue(); } + /** + * @deprecated tests for scalar types are dangerous + */ + @Deprecated public static TypePredicateArgumentFilter<Object, Double> scalarDoubleValue() { return predefFilters().scalarDoubleValue(); } + /** + * @deprecated tests for scalar types are dangerous + */ + @Deprecated public static TypePredicateArgumentFilter<Object, Byte> scalarLogicalValue() { return predefFilters().scalarLogicalValue(); } + /** + * @deprecated tests for scalar types are dangerous + */ + @Deprecated public static TypePredicateArgumentFilter<Object, RComplex> scalarComplexValue() { return predefFilters().scalarComplexValue(); }