protected virtual async Task<IReadOnlyList<IRSessionDataObject>> GetChildrenAsyncInternal() {
var valueEvaluation = DebugEvaluation as IRValueInfo;
if (valueEvaluation == null) {
// Failed to fetch children - for example, because the object is already gone.
return null;
}
if (valueEvaluation.HasChildren) {
await TaskUtilities.SwitchToBackgroundThread();
REvaluationResultProperties properties =
ExpressionProperty |
AccessorKindProperty |
TypeNameProperty |
ClassesProperty |
LengthProperty |
SlotCountProperty |
AttributeCountProperty |
DimProperty |
FlagsProperty |
(RToolsSettings.Current.EvaluateActiveBindings ? ComputedValueProperty : 0);
var children = await valueEvaluation.DescribeChildrenAsync(properties, RValueRepresentations.Str(MaxReprLength), MaxChildrenCount);
return EvaluateChildren(children);
}
return null;
}