in src/jvm/main/org/jetbrains/kotlinx/lincheck/trace/TraceFlattenPolicies.kt [93:108]
override fun shouldIncludeThisNode(currentNode: TraceNode): Boolean {
if (currentNode.tracePoint.isFiltered()) return false
return when (currentNode) {
is EventNode -> with(currentNode) {
!tracePoint.isVirtual && (callDepth == 0 || (
tracePoint.isBlocking && isLast ||
tracePoint is SwitchEventTracePoint ||
tracePoint is ObstructionFreedomViolationExecutionAbortTracePoint
)
)
}
is CallNode -> currentNode.tracePoint.wasSuspended || currentNode.isRootCall
is ResultNode -> true
else -> false
}
}