diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java index 37cdb01ee3ecf02b212a191fde8bb79f76888542..b21cd2e4105233b5361eeb97df5505c7a8f6b970 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java @@ -90,6 +90,11 @@ public final class RAbstractVectorAccessFactory implements Factory26 { return extract.apply(frame, receiver, new Object[]{label + 1}, RLogical.TRUE, RLogical.TRUE); } + @Specialization + protected Object readIndexed(VirtualFrame frame, Object receiver, long label) { + return extract.apply(frame, receiver, new Object[]{label + 1}, RLogical.TRUE, RLogical.TRUE); + } + @Specialization protected Object readProperty(VirtualFrame frame, Object receiver, String label) { return extract.applyAccessField(frame, receiver, label); diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/PositionCastNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/PositionCastNode.java index 32f9f064043db2f4a409f5c308d2227fbabd328a..85fd7dccbb97a442e24ae7df633603bd622f2937 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/PositionCastNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/PositionCastNode.java @@ -74,6 +74,11 @@ abstract class PositionCastNode extends RBaseNode { return RInteger.valueOf(position); } + @Specialization + protected RAbstractVector doLong(long position, @Cached("create()") NACheck check) { + return doDouble(position, check); + } + @Specialization protected RAbstractVector doString(String position) { return RString.valueOf(position);