in src/jvm/main/org/jetbrains/kotlinx/lincheck/trace/TraceFlattenPolicies.kt [59:89]
override fun beforeReturn(currentNode: TraceNode, descendants: List<TraceNode>): List<TraceNode> {
when (currentNode) {
is CallNode -> {
if (!currentNode.isRootCall) return descendants
val returnedValue = currentNode.tracePoint.returnedValue
// Dont show empty hung actor
if (descendants.size == 1 &&
descendants.contains(currentNode) &&
returnedValue is ReturnedValueResult.NoValue &&
currentNode.tracePoint.isActor) return emptyList()
// Check if result node should be added
if (descendants.size > 1 && returnedValue.showAtMethodCallEnd) {
val nSiblings = currentNode.parent?.children?.size ?: 0
if (nSiblings <= 1) {
return descendants + ResultNode(
currentNode.callDepth + 1,
returnedValue,
currentNode.returnEventNumber,
currentNode.tracePoint
)
}
}
return descendants
}
else -> return descendants
}
}