From d493f828c3a5a8855f12b904ae360065877d5e35 Mon Sep 17 00:00:00 2001 From: Lukas Stadler <lukas.stadler@oracle.com> Date: Tue, 23 Aug 2016 13:50:20 +0200 Subject: [PATCH] deprecate and remove calls to Predef.scalarXxx functions --- .../truffle/r/nodes/builtin/base/Cat.java | 4 ++-- .../builtin/base/ConnectionFunctions.java | 2 +- .../r/nodes/builtin/base/InheritsBuiltin.java | 4 ++-- .../r/nodes/builtin/base/MakeUnique.java | 2 +- .../nodes/builtin/base/OptionsFunctions.java | 2 +- .../r/nodes/builtin/base/ReadREnviron.java | 2 +- .../r/nodes/builtin/CastBuilderTest.java | 3 +++ .../truffle/r/nodes/casts/TestCasts.java | 5 +++++ .../truffle/r/nodes/builtin/CastBuilder.java | 20 +++++++++++++++++++ 9 files changed, 36 insertions(+), 8 deletions(-) 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 820ebe6837..6441f31833 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 28fd1e0032..f8874611fb 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 68d4166c8e..e6c8ec77d4 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 b63742e60d..d84b861cbf 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 79760e6605..3a6bc80e94 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 243304a39b..dc15592203 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 643b64da85..d82bd7c0a2 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 494f5e2116..1a8c6e4272 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 44086d1e70..ac009a5b9e 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(); } -- GitLab