Skip to content
Snippets Groups Projects
Commit 1f8713c1 authored by Lukas Stadler's avatar Lukas Stadler
Browse files

remove unnecessary implicit Raw/Complex casts from RTypes and ensure wrapping...

remove unnecessary implicit Raw/Complex casts from RTypes and ensure wrapping of scalar vectors in FFIWrapNode
parent 7cfb8d22
No related branches found
No related tags found
No related merge requests found
......@@ -36,6 +36,7 @@ import com.oracle.truffle.r.runtime.data.RLogical;
import com.oracle.truffle.r.runtime.data.RObject;
import com.oracle.truffle.r.runtime.data.RRaw;
import com.oracle.truffle.r.runtime.data.RScalarList;
import com.oracle.truffle.r.runtime.data.RScalarVector;
import com.oracle.truffle.r.runtime.data.RSequence;
public abstract class FFIWrapNode extends Node {
......@@ -92,7 +93,11 @@ public abstract class FFIWrapNode extends Node {
return wrap(RDataFactory.createComplexVectorFromScalar(value));
}
@Specialization
protected static boolean isRScalarVector(RObject value) {
return value instanceof RScalarVector;
}
@Specialization(guards = "!isRScalarVector(value)")
protected static Object wrap(RObject value) {
return value;
}
......
......@@ -109,21 +109,11 @@ public class RTypes {
return RDataFactory.createDoubleVectorFromScalar(value);
}
@ImplicitCast
public static RAbstractContainer toAbstractContainer(RRaw value) {
return RDataFactory.createRawVectorFromScalar(value);
}
@ImplicitCast
public static RAbstractContainer toAbstractContainer(byte value) {
return RDataFactory.createLogicalVectorFromScalar(value);
}
@ImplicitCast
public static RAbstractContainer toAbstractContainer(RComplex value) {
return RDataFactory.createComplexVectorFromScalar(value);
}
@ImplicitCast
public static RAbstractContainer toAbstractContainer(String value) {
return RDataFactory.createStringVectorFromScalar(value);
......@@ -139,21 +129,11 @@ public class RTypes {
return RDataFactory.createDoubleVectorFromScalar(value);
}
@ImplicitCast
public static RAbstractVector toAbstractVector(RRaw value) {
return RDataFactory.createRawVectorFromScalar(value);
}
@ImplicitCast
public static RAbstractVector toAbstractVector(byte value) {
return RDataFactory.createLogicalVectorFromScalar(value);
}
@ImplicitCast
public static RAbstractVector toAbstractVector(RComplex value) {
return RDataFactory.createComplexVectorFromScalar(value);
}
@ImplicitCast
public static RAbstractVector toAbstractVector(String value) {
return RDataFactory.createStringVectorFromScalar(value);
......@@ -169,21 +149,11 @@ public class RTypes {
return RDataFactory.createDoubleVectorFromScalar(value);
}
@ImplicitCast
public static RAbstractComplexVector toAbstractComplexVector(RComplex vector) {
return RDataFactory.createComplexVectorFromScalar(vector);
}
@ImplicitCast
public static RAbstractLogicalVector toAbstractLogicalVector(byte vector) {
return RDataFactory.createLogicalVectorFromScalar(vector);
}
@ImplicitCast
public static RAbstractRawVector toAbstractRawVector(RRaw vector) {
return RDataFactory.createRawVectorFromScalar(vector);
}
@ImplicitCast
public static RAbstractStringVector toAbstractStringVector(String vector) {
return RDataFactory.createStringVectorFromScalar(vector);
......@@ -199,21 +169,11 @@ public class RTypes {
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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment