override fun shouldIncludeThisNode()

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
        }
    }