diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsCharNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsCharNode.java index 95b124519c139f21b75544d9bd0ed43123c65a5b..8f60448bc218234d188e7b2b0b017e328c04e7e0 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsCharNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsCharNode.java @@ -31,6 +31,7 @@ import com.oracle.truffle.r.runtime.RInternalError; import com.oracle.truffle.r.runtime.RRuntime; import com.oracle.truffle.r.runtime.data.RSymbol; import com.oracle.truffle.r.runtime.data.RTypesFlatLayout; +import com.oracle.truffle.r.runtime.data.model.RAbstractAtomicVector; import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector; import com.oracle.truffle.r.runtime.ffi.CharSXPWrapper; @@ -38,6 +39,8 @@ import com.oracle.truffle.r.runtime.ffi.CharSXPWrapper; public abstract class AsCharNode extends FFIUpCallNode.Arg1 { private static final CharSXPWrapper CharSXPWrapper_NA = CharSXPWrapper.create(RRuntime.STRING_NA); + public abstract CharSXPWrapper execute(Object obj); + @Specialization protected CharSXPWrapper asChar(CharSXPWrapper obj) { return obj; @@ -57,10 +60,9 @@ public abstract class AsCharNode extends FFIUpCallNode.Arg1 { return CharSXPWrapper.create(obj.getName()); } - @Specialization(guards = "isVectorAtomicNodeLG0.execute(obj)") - protected CharSXPWrapper asChar(Object obj, - @Cached("createNonPreserving()") CastStringNode castStringNode, - @SuppressWarnings("unused") @Cached("create()") IsVectorAtomicNodeLG0 isVectorAtomicNodeLG0) { + @Specialization(guards = "obj.getLength() > 0") + protected CharSXPWrapper asChar(RAbstractAtomicVector obj, // + @Cached("createNonPreserving()") CastStringNode castStringNode) { Object castObj = castStringNode.executeString(obj); if (castObj instanceof String) { return CharSXPWrapper.create((String) castObj); @@ -76,4 +78,7 @@ public abstract class AsCharNode extends FFIUpCallNode.Arg1 { return CharSXPWrapper_NA; } + public static AsCharNode create() { + return AsCharNodeGen.create(); + } } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsIntegerNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsIntegerNode.java index b2cb77d981e2e68b5664679817b3c804eac5cd43..a9cc0ef6bb481f6ea2e3e56148f86b71b03f123c 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsIntegerNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsIntegerNode.java @@ -30,6 +30,7 @@ import com.oracle.truffle.r.nodes.unary.CastIntegerNode; import com.oracle.truffle.r.runtime.RInternalError; import com.oracle.truffle.r.runtime.RRuntime; import com.oracle.truffle.r.runtime.data.RTypesFlatLayout; +import com.oracle.truffle.r.runtime.data.model.RAbstractAtomicVector; import com.oracle.truffle.r.runtime.data.model.RAbstractDoubleVector; import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector; @@ -40,6 +41,8 @@ import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector; @TypeSystemReference(RTypesFlatLayout.class) public abstract class AsIntegerNode extends FFIUpCallNode.Arg1 { + public abstract int execute(Object obj); + @Specialization protected int asInteger(int obj) { return obj; @@ -66,10 +69,9 @@ public abstract class AsIntegerNode extends FFIUpCallNode.Arg1 { return obj.getDataAt(0); } - @Specialization(guards = "isVectorAtomicNodeLG0.execute(obj)") - protected int asReal(Object obj, - @Cached("createNonPreserving()") CastIntegerNode castIntegerNode, - @SuppressWarnings("unused") @Cached("create()") IsVectorAtomicNodeLG0 isVectorAtomicNodeLG0) { + @Specialization(guards = "obj.getLength() > 0") + protected int asReal(RAbstractAtomicVector obj, + @Cached("createNonPreserving()") CastIntegerNode castIntegerNode) { Object castObj = castIntegerNode.executeInt(obj); if (castObj instanceof Integer) { return (Integer) castObj; @@ -85,4 +87,8 @@ public abstract class AsIntegerNode extends FFIUpCallNode.Arg1 { return RRuntime.INT_NA; } + public static AsIntegerNode create() { + return AsIntegerNodeGen.create(); + } + } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsLogicalNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsLogicalNode.java index bb67a13e0314bfc8957312e46778c31d9d2f2ffd..b56d55b6e4a4d86cd99ffd88bdb5d93f003aad76 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsLogicalNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsLogicalNode.java @@ -24,19 +24,20 @@ package com.oracle.truffle.r.nodes.ffi; import com.oracle.truffle.api.dsl.Cached; import com.oracle.truffle.api.dsl.Fallback; -import com.oracle.truffle.api.dsl.ImportStatic; import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.TypeSystemReference; import com.oracle.truffle.r.nodes.unary.CastLogicalNode; import com.oracle.truffle.r.runtime.RInternalError; import com.oracle.truffle.r.runtime.RRuntime; import com.oracle.truffle.r.runtime.data.RTypesFlatLayout; +import com.oracle.truffle.r.runtime.data.model.RAbstractAtomicVector; import com.oracle.truffle.r.runtime.data.model.RAbstractLogicalVector; @TypeSystemReference(RTypesFlatLayout.class) -@ImportStatic(IsVectorAtomicNodeLG0.class) public abstract class AsLogicalNode extends FFIUpCallNode.Arg1 { + public abstract int execute(Object obj); + @Specialization protected int asLogical(byte b) { return b; @@ -50,10 +51,9 @@ public abstract class AsLogicalNode extends FFIUpCallNode.Arg1 { return obj.getDataAt(0); } - @Specialization(guards = "isVectorAtomicNodeLG0.execute(obj)") - protected int asLogical(Object obj, - @Cached("createNonPreserving()") CastLogicalNode castLogicalNode, - @SuppressWarnings("unused") @Cached("create()") IsVectorAtomicNodeLG0 isVectorAtomicNodeLG0) { + @Specialization(guards = "obj.getLength() > 0") + protected int asLogical(RAbstractAtomicVector obj, + @Cached("createNonPreserving()") CastLogicalNode castLogicalNode) { Object castObj = castLogicalNode.execute(obj); if (castObj instanceof Byte) { return (byte) castObj; @@ -69,4 +69,8 @@ public abstract class AsLogicalNode extends FFIUpCallNode.Arg1 { return RRuntime.INT_NA; } + public static AsLogicalNode create() { + return AsLogicalNodeGen.create(); + } + } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsRealNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsRealNode.java index 27502aea2ca1bb55f6840e94bb4fec5604f4ca46..0f977902306076282c0a669aa56fdbe7ee609505 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsRealNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/AsRealNode.java @@ -14,13 +14,13 @@ package com.oracle.truffle.r.nodes.ffi; import com.oracle.truffle.api.dsl.Cached; import com.oracle.truffle.api.dsl.Fallback; -import com.oracle.truffle.api.dsl.ImportStatic; import com.oracle.truffle.api.dsl.Specialization; import com.oracle.truffle.api.dsl.TypeSystemReference; import com.oracle.truffle.r.nodes.unary.CastDoubleNode; import com.oracle.truffle.r.runtime.RInternalError; import com.oracle.truffle.r.runtime.RRuntime; import com.oracle.truffle.r.runtime.data.RTypesFlatLayout; +import com.oracle.truffle.r.runtime.data.model.RAbstractAtomicVector; import com.oracle.truffle.r.runtime.data.model.RAbstractDoubleVector; import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector; @@ -30,7 +30,6 @@ import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector; * return {@code NA}. */ @TypeSystemReference(RTypesFlatLayout.class) -@ImportStatic(IsVectorAtomicNodeLG0.class) public abstract class AsRealNode extends FFIUpCallNode.Arg1 { public abstract double execute(Object obj); @@ -61,10 +60,9 @@ public abstract class AsRealNode extends FFIUpCallNode.Arg1 { return obj.getDataAt(0); } - @Specialization(guards = "isVectorAtomicNodeLG0.execute(obj)") - protected double asReal(Object obj, - @Cached("createNonPreserving()") CastDoubleNode castDoubleNode, - @SuppressWarnings("unused") @Cached("create()") IsVectorAtomicNodeLG0 isVectorAtomicNodeLG0) { + @Specialization(guards = "obj.getLength() > 0") + protected double asReal(RAbstractAtomicVector obj, + @Cached("createNonPreserving()") CastDoubleNode castDoubleNode) { Object castObj = castDoubleNode.executeDouble(obj); if (castObj instanceof Double) { return (double) castObj; @@ -80,4 +78,7 @@ public abstract class AsRealNode extends FFIUpCallNode.Arg1 { return RRuntime.DOUBLE_NA; } + public static AsRealNode create() { + return AsRealNodeGen.create(); + } } diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/IsVectorAtomicNodeLG0.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/IsVectorAtomicNodeLG0.java deleted file mode 100644 index 337982d1e8c35e832edda26f419bd53d31cf03d6..0000000000000000000000000000000000000000 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/IsVectorAtomicNodeLG0.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package com.oracle.truffle.r.nodes.ffi; - -import com.oracle.truffle.api.dsl.Fallback; -import com.oracle.truffle.api.dsl.Specialization; -import com.oracle.truffle.api.dsl.TypeSystemReference; -import com.oracle.truffle.api.nodes.Node; -import com.oracle.truffle.r.runtime.data.RTypesFlatLayout; -import com.oracle.truffle.r.runtime.data.model.RAbstractComplexVector; -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; - -/** - * Implements the GNU R function {@code isVectorAtomic} and checks whether length is > 0. - */ -@TypeSystemReference(RTypesFlatLayout.class) -public abstract class IsVectorAtomicNodeLG0 extends Node { - public abstract boolean execute(Object obj); - - @Specialization - protected boolean isVectorAtomicNode(@SuppressWarnings("unused") Byte obj) { - return true; - } - - @Specialization - protected boolean isVectorAtomicNode(@SuppressWarnings("unused") String obj) { - return true; - } - - @Specialization - protected boolean isVectorAtomicNode(RAbstractLogicalVector obj) { - return obj.getLength() > 0; - } - - @Specialization - protected boolean isVectorAtomicNode(RAbstractIntVector obj) { - return obj.getLength() > 0; - } - - @Specialization - protected boolean isVectorAtomicNode(RAbstractDoubleVector obj) { - return obj.getLength() > 0; - } - - @Specialization - protected boolean isVectorAtomicNode(RAbstractStringVector obj) { - return obj.getLength() > 0; - } - - @Specialization - protected boolean isVectorAtomicNode(RAbstractComplexVector obj) { - return obj.getLength() > 0; - } - - @Fallback - protected boolean isVectorAtomicNode(@SuppressWarnings("unused") Object obj) { - return false; - } - - public static IsVectorAtomicNodeLG0 create() { - return IsVectorAtomicNodeLG0NodeGen.create(); - } - -} diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RTypesFlatLayout.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RTypesFlatLayout.java index ed769f7b79bb5da49e260d32d43b057406d81318..b0c6f4bbb0b8657cf152bd2be46dd695523c0903 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RTypesFlatLayout.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/RTypesFlatLayout.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,6 +28,7 @@ import com.oracle.truffle.api.dsl.TypeCheck; import com.oracle.truffle.api.dsl.TypeSystem; import com.oracle.truffle.api.dsl.internal.DSLOptions; import com.oracle.truffle.api.dsl.internal.DSLOptions.DSLGenerator; +import com.oracle.truffle.r.runtime.data.model.RAbstractAtomicVector; import com.oracle.truffle.r.runtime.data.model.RAbstractComplexVector; import com.oracle.truffle.r.runtime.data.model.RAbstractContainer; import com.oracle.truffle.r.runtime.data.model.RAbstractDoubleVector; @@ -300,4 +301,77 @@ public class RTypesFlatLayout { public static RMissing toRMissing(@SuppressWarnings("unused") REmpty empty) { return RMissing.instance; } + + // RAbstractAtomicVector + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(int value) { + return RDataFactory.createIntVectorFromScalar(value); + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(double value) { + return RDataFactory.createDoubleVectorFromScalar(value); + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(RRaw value) { + return RDataFactory.createRawVectorFromScalar(value); + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(byte value) { + return RDataFactory.createLogicalVectorFromScalar(value); + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(RComplex value) { + return RDataFactory.createComplexVectorFromScalar(value); + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(String value) { + return RDataFactory.createStringVectorFromScalar(value); + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(RIntVector vector) { + return vector; + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(RDoubleVector vector) { + return vector; + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(RLogicalVector vector) { + return vector; + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(RComplexVector vector) { + return vector; + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(RRawVector vector) { + return vector; + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(RStringVector vector) { + return vector; + } + + @ImplicitCast + public static RAbstractAtomicVector toAbstractAtomicVector(RIntSequence vector) { + return vector; + } + + @ImplicitCast + public static RAbstractVector toAbstractAtomicVector(RDoubleSequence vector) { + return vector; + } + } diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractAtomicVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractAtomicVector.java new file mode 100644 index 0000000000000000000000000000000000000000..839804eb00977d5f6b0de425e5a232f2b5e428cc --- /dev/null +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractAtomicVector.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2017, 2017, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.truffle.r.runtime.data.model; + +import com.oracle.truffle.api.dsl.Specialization; +import com.oracle.truffle.r.runtime.data.RTypesFlatLayout; + +/** + * Distinguishes what R considers an "atomic" vector, e.g. {@code integer()} from other "vectors", + * e.g., {@code list()}. Specifically these are the FastR atomic vector types: + * <ul> + * <li>{@link RAbstractIntVector}</li> + * <li>{@link RAbstractLogicalVector}</li> + * <li>{@link RAbstractDoubleVector}</li> + * <li>{@link RAbstractComplexVector}</li> + * <li>{@link RAbstractStringVector}</li> + * <li>{@link RAbstractRawVector}</li> + * </ul> + * + * N.B. To use this in a {@link Specialization} you must use {@link RTypesFlatLayout}. + */ +public interface RAbstractAtomicVector extends RAbstractVector { + +} diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractComplexVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractComplexVector.java index e3a04b41338a8e0160adcbfc3824a758109c82ba..3ad93d63f6978b9cc587d5fbd5573e5f34cc991d 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractComplexVector.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractComplexVector.java @@ -27,7 +27,7 @@ import com.oracle.truffle.r.runtime.RType; import com.oracle.truffle.r.runtime.data.RComplex; import com.oracle.truffle.r.runtime.data.RComplexVector; -public interface RAbstractComplexVector extends RAbstractVector { +public interface RAbstractComplexVector extends RAbstractAtomicVector { @Override default Object getDataAtAsObject(int index) { diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractDoubleVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractDoubleVector.java index b8f4e98d3bdf472e95fe2c151483ba897b57194b..8bfd1573077131338384384b95014682a898dc7a 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractDoubleVector.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractDoubleVector.java @@ -27,7 +27,7 @@ import com.oracle.truffle.r.runtime.RType; import com.oracle.truffle.r.runtime.data.RDouble; import com.oracle.truffle.r.runtime.data.RDoubleVector; -public interface RAbstractDoubleVector extends RAbstractVector { +public interface RAbstractDoubleVector extends RAbstractAtomicVector { @Override default Object getDataAtAsObject(int index) { diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractIntVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractIntVector.java index 739bbaad05205f33da7686e7159c9448d482334d..bc64990d6114804f91779463a367bd057c302b27 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractIntVector.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractIntVector.java @@ -27,7 +27,7 @@ import com.oracle.truffle.r.runtime.RType; import com.oracle.truffle.r.runtime.data.RIntVector; import com.oracle.truffle.r.runtime.data.RInteger; -public interface RAbstractIntVector extends RAbstractVector { +public interface RAbstractIntVector extends RAbstractAtomicVector { @Override default Object getDataAtAsObject(int index) { diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractLogicalVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractLogicalVector.java index 2203663c5e96c7578bb36ce11196477a6828ef52..abb58b0adb2308d62398abacb6137218b404d86e 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractLogicalVector.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractLogicalVector.java @@ -27,7 +27,7 @@ import com.oracle.truffle.r.runtime.RType; import com.oracle.truffle.r.runtime.data.RLogical; import com.oracle.truffle.r.runtime.data.RLogicalVector; -public interface RAbstractLogicalVector extends RAbstractVector { +public interface RAbstractLogicalVector extends RAbstractAtomicVector { @Override default Object getDataAtAsObject(int index) { diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractRawVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractRawVector.java index c1a8873d8d2d1c767db50689d0f256255339dbd5..38441f5fb118b2c322746bf2f024ff842c49dec8 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractRawVector.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractRawVector.java @@ -26,7 +26,7 @@ import com.oracle.truffle.r.runtime.RType; import com.oracle.truffle.r.runtime.data.RRaw; import com.oracle.truffle.r.runtime.data.RRawVector; -public interface RAbstractRawVector extends RAbstractVector { +public interface RAbstractRawVector extends RAbstractAtomicVector { @Override default Object getDataAtAsObject(int index) { diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractStringVector.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractStringVector.java index c21728a8c03691497d98b912e40ab6b08feee290..032c8bed11216dd37a72c1670fc29b547e421436 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractStringVector.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/data/model/RAbstractStringVector.java @@ -27,7 +27,7 @@ import com.oracle.truffle.r.runtime.RType; import com.oracle.truffle.r.runtime.data.RString; import com.oracle.truffle.r.runtime.data.RStringVector; -public interface RAbstractStringVector extends RAbstractVector { +public interface RAbstractStringVector extends RAbstractAtomicVector { @Override default Object getDataAtAsObject(int index) {