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; ...@@ -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.RObject;
import com.oracle.truffle.r.runtime.data.RRaw; import com.oracle.truffle.r.runtime.data.RRaw;
import com.oracle.truffle.r.runtime.data.RScalarList; import com.oracle.truffle.r.runtime.data.RScalarList;
import com.oracle.truffle.r.runtime.data.RScalarVector;
import com.oracle.truffle.r.runtime.data.RSequence; import com.oracle.truffle.r.runtime.data.RSequence;
public abstract class FFIWrapNode extends Node { public abstract class FFIWrapNode extends Node {
...@@ -92,7 +93,11 @@ public abstract class FFIWrapNode extends Node { ...@@ -92,7 +93,11 @@ public abstract class FFIWrapNode extends Node {
return wrap(RDataFactory.createComplexVectorFromScalar(value)); 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) { protected static Object wrap(RObject value) {
return value; return value;
} }
......
...@@ -109,21 +109,11 @@ public class RTypes { ...@@ -109,21 +109,11 @@ public class RTypes {
return RDataFactory.createDoubleVectorFromScalar(value); return RDataFactory.createDoubleVectorFromScalar(value);
} }
@ImplicitCast
public static RAbstractContainer toAbstractContainer(RRaw value) {
return RDataFactory.createRawVectorFromScalar(value);
}
@ImplicitCast @ImplicitCast
public static RAbstractContainer toAbstractContainer(byte value) { public static RAbstractContainer toAbstractContainer(byte value) {
return RDataFactory.createLogicalVectorFromScalar(value); return RDataFactory.createLogicalVectorFromScalar(value);
} }
@ImplicitCast
public static RAbstractContainer toAbstractContainer(RComplex value) {
return RDataFactory.createComplexVectorFromScalar(value);
}
@ImplicitCast @ImplicitCast
public static RAbstractContainer toAbstractContainer(String value) { public static RAbstractContainer toAbstractContainer(String value) {
return RDataFactory.createStringVectorFromScalar(value); return RDataFactory.createStringVectorFromScalar(value);
...@@ -139,21 +129,11 @@ public class RTypes { ...@@ -139,21 +129,11 @@ public class RTypes {
return RDataFactory.createDoubleVectorFromScalar(value); return RDataFactory.createDoubleVectorFromScalar(value);
} }
@ImplicitCast
public static RAbstractVector toAbstractVector(RRaw value) {
return RDataFactory.createRawVectorFromScalar(value);
}
@ImplicitCast @ImplicitCast
public static RAbstractVector toAbstractVector(byte value) { public static RAbstractVector toAbstractVector(byte value) {
return RDataFactory.createLogicalVectorFromScalar(value); return RDataFactory.createLogicalVectorFromScalar(value);
} }
@ImplicitCast
public static RAbstractVector toAbstractVector(RComplex value) {
return RDataFactory.createComplexVectorFromScalar(value);
}
@ImplicitCast @ImplicitCast
public static RAbstractVector toAbstractVector(String value) { public static RAbstractVector toAbstractVector(String value) {
return RDataFactory.createStringVectorFromScalar(value); return RDataFactory.createStringVectorFromScalar(value);
...@@ -169,21 +149,11 @@ public class RTypes { ...@@ -169,21 +149,11 @@ public class RTypes {
return RDataFactory.createDoubleVectorFromScalar(value); return RDataFactory.createDoubleVectorFromScalar(value);
} }
@ImplicitCast
public static RAbstractComplexVector toAbstractComplexVector(RComplex vector) {
return RDataFactory.createComplexVectorFromScalar(vector);
}
@ImplicitCast @ImplicitCast
public static RAbstractLogicalVector toAbstractLogicalVector(byte vector) { public static RAbstractLogicalVector toAbstractLogicalVector(byte vector) {
return RDataFactory.createLogicalVectorFromScalar(vector); return RDataFactory.createLogicalVectorFromScalar(vector);
} }
@ImplicitCast
public static RAbstractRawVector toAbstractRawVector(RRaw vector) {
return RDataFactory.createRawVectorFromScalar(vector);
}
@ImplicitCast @ImplicitCast
public static RAbstractStringVector toAbstractStringVector(String vector) { public static RAbstractStringVector toAbstractStringVector(String vector) {
return RDataFactory.createStringVectorFromScalar(vector); return RDataFactory.createStringVectorFromScalar(vector);
...@@ -199,21 +169,11 @@ public class RTypes { ...@@ -199,21 +169,11 @@ public class RTypes {
return RDataFactory.createDoubleVectorFromScalar(value); return RDataFactory.createDoubleVectorFromScalar(value);
} }
@ImplicitCast
public static RAbstractAtomicVector toAbstractAtomicVector(RRaw value) {
return RDataFactory.createRawVectorFromScalar(value);
}
@ImplicitCast @ImplicitCast
public static RAbstractAtomicVector toAbstractAtomicVector(byte value) { public static RAbstractAtomicVector toAbstractAtomicVector(byte value) {
return RDataFactory.createLogicalVectorFromScalar(value); return RDataFactory.createLogicalVectorFromScalar(value);
} }
@ImplicitCast
public static RAbstractAtomicVector toAbstractAtomicVector(RComplex value) {
return RDataFactory.createComplexVectorFromScalar(value);
}
@ImplicitCast @ImplicitCast
public static RAbstractAtomicVector toAbstractAtomicVector(String value) { public static RAbstractAtomicVector toAbstractAtomicVector(String value) {
return RDataFactory.createStringVectorFromScalar(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