followPrevPDGUntilHit

fun Node.followPrevPDGUntilHit(collectFailedPaths: Boolean = true, findAllPossiblePaths: Boolean = true, interproceduralAnalysis: Boolean = false, predicate: (Node) -> Boolean): FulfilledAndFailedPaths

Returns an instance of FulfilledAndFailedPaths where FulfilledAndFailedPaths.fulfilled contains all possible shortest data flow paths (with ProgramDependences) between the starting node this and the end node fulfilling predicate (backwards analysis). The paths are represented as lists of nodes. Paths which do not end at such a node are included in FulfilledAndFailedPaths.failed.

Hence, if "fulfilled" is a non-empty list, a CDG path from this to such a node is possible but not mandatory. If the list "failed" is empty, the data flow is mandatory.