CpgPassBase

io.shiftleft.passes.CpgPassBase
trait CpgPassBase

Base trait for all CPG passes. Defines the lifecycle methods that every pass must implement: createAndApply for standalone execution, and runWithBuilder for composing passes that share a single DiffGraphBuilder.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Abstract methods

def createAndApply(): Unit
def runWithBuilder(builder: DiffGraphBuilder): Int

Runs the cpg pass, adding changes to the passed builder. Use with caution -- API is unstable. Returns max(nParts, 1), where nParts is either the number of parallel parts, or the number of iterarator elements in case of legacy passes. Includes init() and finish() logic.

Runs the cpg pass, adding changes to the passed builder. Use with caution -- API is unstable. Returns max(nParts, 1), where nParts is either the number of parallel parts, or the number of iterarator elements in case of legacy passes. Includes init() and finish() logic.

Attributes

Concrete methods

protected def baseLogger: Logger
protected def generateOutFileName(prefix: String, outName: String, index: Int): String
def name: String

Name of the pass. By default it is inferred from the name of the class, override if needed.

Name of the pass. By default it is inferred from the name of the class, override if needed.

Attributes

def runWithBuilderLogged(builder: DiffGraphBuilder): Int

Wraps runWithBuilder with logging and exception handling. Use with caution — API is unstable.

Wraps runWithBuilder with logging and exception handling. Use with caution — API is unstable.

Value parameters

builder

the DiffGraphBuilder to absorb changes into

Attributes

Returns

the number of parts processed, or -1 if the pass threw an exception

protected def withStartEndTimesLogged[A](fun: => A): A

Executes fun while logging the pass start and completion time (including duration via MDC).

Executes fun while logging the pass start and completion time (including duration via MDC).

Type parameters

A

the return type of the wrapped computation

Value parameters

fun

the computation to execute

Attributes

Returns

the result of fun

Deprecated methods

def createApplySerializeAndStore(serializedCpg: SerializedCpg, prefix: String = ...): Unit

Attributes

Deprecated
Please use createAndApply
protected def store(overlay: GeneratedMessageV3, name: String, serializedCpg: SerializedCpg): Unit

Attributes

Deprecated
true