Skip to content

Commit 127dcac

Browse files
committed
Logical value for RExpression
1 parent eab47e1 commit 127dcac

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

visualvm/heapviewer.truffle/src/org/graalvm/visualvm/heapviewer/truffle/lang/r/RDetailsProvider.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public class RDetailsProvider extends DetailsProvider.Basic {
4949
private static final String RLOGICAL_VECTOR_FQN = "com.oracle.truffle.r.runtime.data.RLogicalVector"; // NOI18N
5050
private static final String RLOGICAL_FQN = "com.oracle.truffle.r.runtime.data.RLogical"; // NOI18N
5151
private static final String RCOMPLEX_VECTOR_FQN = "com.oracle.truffle.r.runtime.data.RComplexVector"; // NOI18N
52+
private static final String REXPRESSION_FQN = "com.oracle.truffle.r.runtime.data.RExpression"; // NOI18N
5253
private static final String RWRAPPER_MASK = "com.oracle.truffle.r.runtime.data.RForeignWrapper+"; // NOI18N
5354
private static final String RSYMBOL_MASK = "com.oracle.truffle.r.runtime.data.RSymbol"; //NOI18N
5455
private static final String RFUNCTION_MASK = "com.oracle.truffle.r.runtime.data.RFunction"; //NOI18N
@@ -76,7 +77,12 @@ public String getDetailsString(String className, Instance instance, Heap heap) {
7677
ObjectArrayInstance data = (ObjectArrayInstance) rawData;
7778
size = data.getLength();
7879
if (size == 1) {
79-
return getValue(data.getValues().get(0), false, heap);
80+
Object obj = data.getValues().get(0);
81+
if (REXPRESSION_FQN.equals(instance.getJavaClass().getName()) && obj instanceof Instance) {
82+
String str = DetailsUtils.getInstanceFieldString((Instance)obj, "type", heap); // NOI18N
83+
if (str != null) return "[" + str + "]"; // NOI18N
84+
}
85+
return getValue(obj, false, heap);
8086
}
8187
} else if (rawData instanceof PrimitiveArrayInstance) {
8288
PrimitiveArrayInstance data = (PrimitiveArrayInstance) rawData;

0 commit comments

Comments
 (0)