MethodLocalPass

io.joern.php2cpg.passes.MethodLocalPass
class MethodLocalPass(cpg: Cpg) extends LocalCreationPass[Method]

Attributes

Graph
Supertypes
class LocalCreationPass[Method]
trait AstNodeBuilder[AstNode, LocalCreationPass[Method]]
class ConcurrentWriterCpgPass[Method]
class NewStyleCpgPassBase[Method]
trait CpgPassBase
class Object
trait Matchable
class Any
Show all

Members list

Type members

Inherited types

type DiffGraphBuilder = DiffGraphBuilder

Attributes

Inherited from:
NewStyleCpgPassBase

Value members

Concrete methods

override def generateParts(): Array[Method]

Attributes

Definition Classes
NewStyleCpgPassBase
override def runOnPart(diffGraph: DiffGraphBuilder, method: Method): Unit

Attributes

Definition Classes
NewStyleCpgPassBase

Inherited methods

protected def annotationNode(node: AstNode, code: String, name: String, fullName: String): NewAnnotation

Attributes

Inherited from:
AstNodeBuilder
protected def blockNode(node: AstNode, code: String, typeFullName: String): NewBlock

Attributes

Inherited from:
AstNodeBuilder
protected def blockNode(node: AstNode): NewBlock

Attributes

Inherited from:
AstNodeBuilder
def callNode(node: AstNode, code: String, name: String, methodFullName: String, dispatchType: String, signature: Option[String], typeFullName: Option[String]): NewCall

Attributes

Inherited from:
AstNodeBuilder
def callNode(node: AstNode, code: String, name: String, methodFullName: String, dispatchType: String): NewCall

Attributes

Inherited from:
AstNodeBuilder
protected def controlStructureNode(node: AstNode, controlStructureType: String, code: String): NewControlStructure

Attributes

Inherited from:
AstNodeBuilder
override def createAndApply(): Unit

Attributes

Definition Classes
NewStyleCpgPassBase -> CpgPassBase
Inherited from:
NewStyleCpgPassBase
override def createApplySerializeAndStore(serializedCpg: SerializedCpg, inverse: Boolean, prefix: String): Unit

WARNING: runOnPart is executed in parallel to committing of graph modifications. The upshot is that it is unsafe to read ANY data from cpg, on pain of bad race conditions

WARNING: runOnPart is executed in parallel to committing of graph modifications. The upshot is that it is unsafe to read ANY data from cpg, on pain of bad race conditions

Only use ConcurrentWriterCpgPass if you are very sure that you avoid races.

E.g. adding a CFG edge to node X races with reading an AST edge of node X.

Attributes

Definition Classes
ConcurrentWriterCpgPass -> CpgPassBase
Inherited from:
ConcurrentWriterCpgPass
protected def fieldIdentifierNode(node: AstNode, name: String, code: String): NewFieldIdentifier

Attributes

Inherited from:
AstNodeBuilder
def finish(): Unit

Attributes

Inherited from:
NewStyleCpgPassBase
protected def identifierNode(node: AstNode, name: String, code: String, typeFullName: String, dynamicTypeHints: Seq[String]): NewIdentifier

Attributes

Inherited from:
AstNodeBuilder
def init(): Unit

Attributes

Inherited from:
NewStyleCpgPassBase
def isParallel: Boolean

Attributes

Inherited from:
NewStyleCpgPassBase
protected def jumpTargetNode(node: AstNode, name: String, code: String, parserTypeName: Option[String]): NewJumpTarget

Attributes

Inherited from:
AstNodeBuilder
protected def literalNode(node: AstNode, code: String, typeFullName: String, dynamicTypeHints: Seq[String]): NewLiteral

Attributes

Inherited from:
AstNodeBuilder
protected def localNode(node: AstNode, name: String, code: String, typeFullName: String, closureBindingId: Option[String]): NewLocal

Attributes

Inherited from:
AstNodeBuilder
protected def memberNode(node: AstNode, name: String, code: String, typeFullName: String, dynamicTypeHints: Seq[String]): NewMember

Attributes

Inherited from:
AstNodeBuilder
protected def memberNode(node: AstNode, name: String, code: String, typeFullName: String): NewMember

Attributes

Inherited from:
AstNodeBuilder
protected def methodNode(node: AstNode, name: String, code: String, fullName: String, signature: Option[String], fileName: String, astParentType: Option[String], astParentFullName: Option[String]): NewMethod

Attributes

Inherited from:
AstNodeBuilder
def methodNode(node: AstNode, name: String, fullName: String, signature: String, fileName: String): NewMethod

Attributes

Inherited from:
AstNodeBuilder
protected def methodRefNode(node: AstNode, code: String, methodFullName: String, typeFullName: String): NewMethodRef

Attributes

Inherited from:
AstNodeBuilder
protected def methodReturnNode(node: AstNode, typeFullName: String): NewMethodReturn

Attributes

Inherited from:
AstNodeBuilder
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

Inherited from:
CpgPassBase
protected def newImportNode(code: String, importedEntity: String, importedAs: String, include: AstNode): NewImport

Attributes

Inherited from:
AstNodeBuilder
protected def offset(node: AstNode): Option[(Int, Int)]

Attributes

Inherited from:
AstNodeBuilder
protected def parameterInNode(node: AstNode, name: String, code: String, index: Int, isVariadic: Boolean, evaluationStrategy: String, typeFullName: Option[String]): NewMethodParameterIn

Attributes

Inherited from:
AstNodeBuilder
protected def parameterInNode(node: AstNode, name: String, code: String, index: Int, isVariadic: Boolean, evaluationStrategy: String, typeFullName: String): NewMethodParameterIn

Attributes

Inherited from:
AstNodeBuilder
protected def returnNode(node: AstNode, code: String): NewReturn

Attributes

Inherited from:
AstNodeBuilder
override def runWithBuilder(externalBuilder: 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

Definition Classes
NewStyleCpgPassBase -> CpgPassBase
Inherited from:
NewStyleCpgPassBase
def runWithBuilderLogged(builder: DiffGraphBuilder): Int

Wraps runWithBuilder with logging, and swallows raised exceptions. Use with caution -- API is unstable. A return value of -1 indicates failure, otherwise the return value of runWithBuilder is passed through.

Wraps runWithBuilder with logging, and swallows raised exceptions. Use with caution -- API is unstable. A return value of -1 indicates failure, otherwise the return value of runWithBuilder is passed through.

Attributes

Inherited from:
CpgPassBase
protected def shortenCode(code: String): String

Attributes

Inherited from:
AstNodeBuilder
protected def typeDeclNode(node: AstNode, name: String, fullName: String, filename: String, code: String, astParentType: String, astParentFullName: String, inherits: Seq[String], alias: Option[String]): NewTypeDecl

Attributes

Inherited from:
AstNodeBuilder
def typeDeclNode(node: AstNode, name: String, fullName: String, fileName: String, inheritsFrom: Seq[String], alias: Option[String]): NewTypeDecl

Attributes

Inherited from:
AstNodeBuilder
protected def typeRefNode(node: AstNode, code: String, typeFullName: String): NewTypeRef

Attributes

Inherited from:
AstNodeBuilder
protected def unknownNode(node: AstNode, code: String): NewUnknown

Attributes

Inherited from:
AstNodeBuilder

Inherited fields

var nDiffT: Int

Attributes

Inherited from:
ConcurrentWriterCpgPass