Packages

  • package root
    Definition Classes
    root
  • package io
    Definition Classes
    root
  • package shiftleft
    Definition Classes
    io
  • package semanticcpg

    Domain specific language for querying code property graphs

    Domain specific language for querying code property graphs

    This is the API reference for the CPG query language, a language to mine code for defects and vulnerabilities both interactively on a code analysis shell (REPL), or using non-interactive scripts.

    Queries written in the CPG query language express graph traversals (see https://en.wikipedia.org/wiki/Graph_traversal). Similar to the standard graph traversal language "Gremlin" (see https://en.wikipedia.org/wiki/Gremlin_(programming_language))) these traversals are formulated as sequences of primitive language elements referred to as "steps". You can think of a step as a small program, similar to a unix shell utility, however, instead of processing lines one by one, the step processes nodes of the graph.

    Starting a traversal

    All traversals begin by selecting a set of start nodes, e.g.,

    cpg.method

    will start the traversal at all methods, while

    cpg.local

    will start at all local variables. The complete list of starting points can be found at

    io.shiftleft.codepropertygraph.Cpg

    Lazy evaluation

    Queries are lazily evaluated, e.g., cpg.method creates a traversal which you can add more steps to. You can, for example, evaluate the traversal by converting it to a list:

    cpg.method.toList

    Since toList is such a common operation, we provide the shorthand l, meaning that

    cpg.method.l

    provides the same result as the former query.

    Properties

    Nodes have "properties", key-value pairs where keys are strings and values are primitive data types such as strings, integers, or Booleans. Properties of nodes can be selected based on their key, e.g.,

    cpg.method.name

    traverses to all method names. Nodes can also be filtered based on properties, e.g.,

    cpg.method.name(".*exec.*")

    traverse to all methods where name matches the regular expression ".*exec.*". You can see a complete list of properties by browsing to the API documentation of the corresponding step. For example, you can find the properties of method nodes at io.shiftleft.semanticcpg.language.types.structure.MethodTraversal.

    Side effects

    Useful if you want to mutate something outside the traversal, or simply debug it: This prints all typeDecl names as it traverses the graph and increments i for each one.

    var i = 0
    cpg.typeDecl.sideEffect{typeTemplate => println(typeTemplate.name); i = i + 1}.exec

    [advanced] Selecting multiple things from your traversal

    If you are interested in multiple things along the way of your traversal, you label anything using the as modulator, and use select at the end. Note that the compiler automatically derived the correct return type as a tuple of the labelled steps, in this case with two elements.

    cpg.method.as("method").definingTypeDecl.as("classDef").select.toList
    // return type: List[(Method, TypeDecl)]

    [advanced] For comprehensions

    You can always start a new traversal from a node, e.g.,

    val someMethod = cpg.method.head
    someMethod.start.parameter.toList

    You can use this e.g. in a for comprehension, which is (in this context) essentially an alternative way to select multiple intermediate things. It is more expressive, but more computationally expensive.

    val query = for {
      method <- cpg.method
      param <- method.start.parameter
    } yield (method.name, param.name)
    
    query.toList
    Definition Classes
    shiftleft
  • package accesspath
    Definition Classes
    semanticcpg
  • package codedumper
    Definition Classes
    semanticcpg
  • package dotgenerator
    Definition Classes
    semanticcpg
  • package language

    Language for traversing the code property graph

    Language for traversing the code property graph

    Implicit conversions to specific steps, based on the node at hand. Automatically in scope when using anything in the steps package, e.g. Steps

    Definition Classes
    semanticcpg
  • package bindingextension
  • package callgraphextension
  • package dotextension
  • package nodemethods
  • package operatorextension
  • package types
  • AccessPathHandling
  • DefaultNodeExtensionFinder
  • HasLocation
  • HasStoreMethod
  • ICallResolver
  • LocationCreator
  • NewNodeSteps
  • NewNodeTypeDeco
  • NewTagNodePairTraversal
  • NoResolve
  • NodeExtensionFinder
  • NodeOrdering
  • NodeSteps
  • NodeTypeStarters
  • Show
  • Steps
  • TagTraversal
  • package layers
    Definition Classes
    semanticcpg
  • package testing
    Definition Classes
    semanticcpg
  • package utils
    Definition Classes
    semanticcpg

package language

Language for traversing the code property graph

Implicit conversions to specific steps, based on the node at hand. Automatically in scope when using anything in the steps package, e.g. Steps

Linear Supertypes
NodeTraversalImplicits, NodeBaseTypeTraversalImplicits, LowPrioImplicits, language.operatorextension.Implicits, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. language
  2. NodeTraversalImplicits
  3. NodeBaseTypeTraversalImplicits
  4. LowPrioImplicits
  5. Implicits
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Package Members

  1. package bindingextension
  2. package callgraphextension
  3. package dotextension
  4. package nodemethods
  5. package operatorextension
  6. package types

Type Members

  1. trait HasLocation extends Any
  2. trait HasStoreMethod extends AnyRef
  3. trait ICallResolver extends AnyRef
  4. class NewNodeSteps[A <: NewNode] extends HasStoreMethod
  5. implicit final class NewNodeTypeDeco[NodeType <: NewNode] extends AnyVal
  6. class NewTagNodePairTraversal extends HasStoreMethod
  7. trait NodeExtensionFinder extends AnyRef
  8. final class NodeSteps[NodeType <: StoredNode] extends AnyVal

    Steps for all node types

    Steps for all node types

    This is the base class for all steps defined on

    Annotations
    @Traversal()
  9. class NodeTypeStarters extends TraversalSource
    Annotations
    @TraversalSource()
  10. trait Show[A] extends AnyRef

    Typeclass for (pretty) printing an object

  11. final class Steps[A] extends AnyVal

    Base class for our DSL These are the base steps available in all steps of the query language.

    Base class for our DSL These are the base steps available in all steps of the query language. There are no constraints on the element types, unlike e.g. NodeSteps

  12. final class TagTraversal extends AnyVal

Value Members

  1. implicit def cfgNodeToAsNode(node: CfgNode): AstNodeMethods
  2. implicit def graphToInterproceduralDot(cpg: Cpg): InterproceduralNodeDot
  3. implicit def iterOnceToAnnotationParameterAssignTrav[A <: AnnotationParameterAssign](a: IterableOnce[A]): AnnotationParameterAssignTraversal
  4. implicit def iterOnceToAnnotationTrav[A <: Annotation](a: IterableOnce[A]): AnnotationTraversal
  5. implicit def iterOnceToAstNodeDot[A <: AstNode](a: IterableOnce[A]): AstNodeDot[A]
  6. implicit def iterOnceToAstNodeTraversal[A <: AstNode](a: IterableOnce[A]): AstNodeTraversal[A]
    Definition Classes
    LowPrioImplicits
  7. implicit def iterOnceToBindingMethodTrav[A <: Method](a: IterableOnce[A]): MethodTraversal
  8. implicit def iterOnceToBindingTypeDeclTrav[A <: TypeDecl](a: IterableOnce[A]): TypeDeclTraversal
  9. implicit def iterOnceToCallTrav[A <: Call](a: IterableOnce[A]): CallTraversal
  10. implicit def iterOnceToCfgNodeDot[A <: Method](a: IterableOnce[A]): CfgNodeDot
  11. implicit def iterOnceToCfgNodeTraversal[A <: CfgNode](a: IterableOnce[A]): CfgNodeTraversal[A]
    Definition Classes
    LowPrioImplicits
  12. implicit def iterOnceToControlStructureTrav[A <: ControlStructure](a: IterableOnce[A]): ControlStructureTraversal
  13. implicit def iterOnceToEvalTypeAccessorsExpression[A <: Expression](a: IterableOnce[A]): EvalTypeAccessors[A]
  14. implicit def iterOnceToEvalTypeAccessorsLocal[A <: Local](a: IterableOnce[A]): EvalTypeAccessors[A]
  15. implicit def iterOnceToEvalTypeAccessorsMember[A <: Member](a: IterableOnce[A]): EvalTypeAccessors[A]
  16. implicit def iterOnceToEvalTypeAccessorsMethod[A <: Method](a: IterableOnce[A]): EvalTypeAccessors[A]
  17. implicit def iterOnceToEvalTypeAccessorsMethodReturn[A <: MethodReturn](a: IterableOnce[A]): EvalTypeAccessors[A]
  18. implicit def iterOnceToEvalTypeAccessorsParameterIn[A <: MethodParameterIn](a: IterableOnce[A]): EvalTypeAccessors[A]
  19. implicit def iterOnceToEvalTypeAccessorsParameterOut[A <: MethodParameterOut](a: IterableOnce[A]): EvalTypeAccessors[A]
  20. implicit def iterOnceToFileTrav[A <: File](a: IterableOnce[A]): FileTraversal
  21. implicit def iterOnceToIdentifierTrav[A <: Identifier](a: IterableOnce[A]): IdentifierTraversal
  22. implicit def iterOnceToMethodParameterInTrav[A <: MethodParameterIn](a: IterableOnce[A]): MethodParameterTraversal
  23. implicit def iterOnceToMethodParameterOutTrav[A <: MethodParameterOut](a: IterableOnce[A]): MethodParameterOutTraversal
  24. implicit def iterOnceToMethodReturnTrav[A <: MethodReturn](a: IterableOnce[A]): MethodReturnTraversal
  25. implicit def iterOnceToMethodTravCallGraphExt[A <: Method](a: IterableOnce[A]): MethodTraversal
  26. implicit def iterOnceToModifierAccessorsMember[A <: Member](a: IterableOnce[A]): ModifierAccessors[A]
  27. implicit def iterOnceToModifierAccessorsMethod[A <: Method](a: IterableOnce[A]): ModifierAccessors[A]
  28. implicit def iterOnceToModifierAccessorsTypeDecl[A <: TypeDecl](a: IterableOnce[A]): ModifierAccessors[A]
  29. implicit def iterOnceToNamespaceBlockTrav[A <: NamespaceBlock](a: IterableOnce[A]): NamespaceBlockTraversal
  30. implicit def iterOnceToNamespaceTrav[A <: Namespace](a: IterableOnce[A]): NamespaceTraversal
  31. implicit def iterOnceToNodeSteps[A <: StoredNode](a: IterableOnce[A]): NodeSteps[A]
  32. implicit def iterOnceToOriginalCallTrav[A <: Call](a: IterableOnce[A]): CallTraversal
  33. implicit def iterOnceToTypeDeclTrav[A <: TypeDecl](a: IterableOnce[A]): TypeDeclTraversal
  34. implicit def iterOnceToTypeTrav[A <: Type](a: IterableOnce[A]): TypeTraversal
  35. implicit def iterToImportTrav[A <: Import](a: IterableOnce[A]): ImportTraversal
  36. implicit def singleToAnnotationParameterAssignTrav[A <: AnnotationParameterAssign](a: A): AnnotationParameterAssignTraversal
  37. implicit def singleToAnnotationTrav[A <: Annotation](a: A): AnnotationTraversal
  38. implicit def singleToAstNodeDot[A <: AstNode](a: A): AstNodeDot[A]
  39. implicit def singleToAstNodeTraversal[A <: AstNode](a: A): AstNodeTraversal[A]
    Definition Classes
    LowPrioImplicits
  40. implicit def singleToBindingMethodTrav[A <: Method](a: A): MethodTraversal
  41. implicit def singleToBindingTypeDeclTrav[A <: TypeDecl](a: A): TypeDeclTraversal
  42. implicit def singleToCallTrav[A <: Call](a: A): CallTraversal
  43. implicit def singleToCfgNodeDot[A <: Method](a: A): CfgNodeDot
  44. implicit def singleToCfgNodeTraversal[A <: CfgNode](a: A): CfgNodeTraversal[A]
    Definition Classes
    LowPrioImplicits
  45. implicit def singleToControlStructureTrav[A <: ControlStructure](a: A): ControlStructureTraversal
  46. implicit def singleToEvalTypeAccessorsExpression[A <: Expression](a: A): EvalTypeAccessors[A]
  47. implicit def singleToEvalTypeAccessorsLocal[A <: Local](a: A): EvalTypeAccessors[A]
  48. implicit def singleToEvalTypeAccessorsMember[A <: Member](a: A): EvalTypeAccessors[A]
  49. implicit def singleToEvalTypeAccessorsMethod[A <: Method](a: A): EvalTypeAccessors[A]
  50. implicit def singleToEvalTypeAccessorsMethodReturn[A <: MethodReturn](a: A): EvalTypeAccessors[A]
  51. implicit def singleToEvalTypeAccessorsParameterIn[A <: MethodParameterIn](a: A): EvalTypeAccessors[A]
  52. implicit def singleToEvalTypeAccessorsParameterOut[A <: MethodParameterOut](a: A): EvalTypeAccessors[A]
  53. implicit def singleToFileTrav[A <: File](a: A): FileTraversal
  54. implicit def singleToIdentifierTrav[A <: Identifier](a: A): IdentifierTraversal
  55. implicit def singleToImportTrav[A <: Import](a: A): ImportTraversal
  56. implicit def singleToMethodParameterInTrav[A <: MethodParameterIn](a: A): MethodParameterTraversal
  57. implicit def singleToMethodParameterOutTrav[A <: MethodParameterOut](a: A): MethodParameterOutTraversal
  58. implicit def singleToMethodTravCallGraphExt[A <: Method](a: A): MethodTraversal
  59. implicit def singleToModifierAccessorsMember[A <: Member](a: A): ModifierAccessors[A]
  60. implicit def singleToModifierAccessorsMethod[A <: Method](a: A): ModifierAccessors[A]
  61. implicit def singleToModifierAccessorsTypeDecl[A <: TypeDecl](a: A): ModifierAccessors[A]
  62. implicit def singleToNamespaceBlockTrav[A <: NamespaceBlock](a: A): NamespaceBlockTraversal
  63. implicit def singleToNamespaceTrav[A <: Namespace](a: A): NamespaceTraversal
  64. implicit def singleToTypeDeclTrav[A <: TypeDecl](a: A): TypeDeclTraversal
  65. implicit def singleToTypeTrav[A <: Type](a: A): TypeTraversal
  66. implicit def toAnnotationLiteralTraversalExtGen[NodeType <: AnnotationLiteral](trav: IterableOnce[NodeType]): AnnotationLiteralTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  67. implicit def toAnnotationParameterAssignTraversalExtGen[NodeType <: AnnotationParameterAssign](trav: IterableOnce[NodeType]): AnnotationParameterAssignTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  68. implicit def toAnnotationParameterTraversalExtGen[NodeType <: AnnotationParameter](trav: IterableOnce[NodeType]): AnnotationParameterTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  69. implicit def toAnnotationTraversalExtGen[NodeType <: Annotation](trav: IterableOnce[NodeType]): AnnotationTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  70. implicit def toArrayAccessExt(arrayAccess: ArrayAccess): ArrayAccessMethods
    Definition Classes
    Implicits
  71. implicit def toArrayAccessTrav(steps: Traversal[ArrayAccess]): ArrayAccessTraversal
    Definition Classes
    Implicits
  72. implicit def toArrayInitializerTraversalExtGen[NodeType <: ArrayInitializer](trav: IterableOnce[NodeType]): ArrayInitializerTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  73. implicit def toAssignmentExt(assignment: Assignment): AssignmentMethods
    Definition Classes
    Implicits
  74. implicit def toAssignmentTrav(steps: Traversal[Assignment]): AssignmentTraversal
    Definition Classes
    Implicits
  75. implicit def toAstNodeMethods(node: AstNode): AstNodeMethods
  76. implicit def toAstNodeTraversalExtGen[NodeType <: AstNode](trav: IterableOnce[NodeType]): AstNodeTraversalExtGen[NodeType]
    Definition Classes
    NodeBaseTypeTraversalImplicits
  77. implicit def toBindingTraversalExtGen[NodeType <: Binding](trav: IterableOnce[NodeType]): BindingTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  78. implicit def toBlockTraversalExtGen[NodeType <: Block](trav: IterableOnce[NodeType]): BlockTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  79. implicit def toCallMethods(node: Call): CallMethods
  80. implicit def toCallReprTraversalExtGen[NodeType <: CallRepr](trav: IterableOnce[NodeType]): CallReprTraversalExtGen[NodeType]
    Definition Classes
    NodeBaseTypeTraversalImplicits
  81. implicit def toCallTraversalExtGen[NodeType <: Call](trav: IterableOnce[NodeType]): CallTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  82. implicit def toCfgNodeMethods(node: CfgNode): CfgNodeMethods
  83. implicit def toCfgNodeTraversalExtGen[NodeType <: CfgNode](trav: IterableOnce[NodeType]): CfgNodeTraversalExtGen[NodeType]
    Definition Classes
    NodeBaseTypeTraversalImplicits
  84. implicit def toClosureBindingTraversalExtGen[NodeType <: ClosureBinding](trav: IterableOnce[NodeType]): ClosureBindingTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  85. implicit def toCommentTraversalExtGen[NodeType <: Comment](trav: IterableOnce[NodeType]): CommentTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  86. implicit def toConfigFileTraversalExtGen[NodeType <: ConfigFile](trav: IterableOnce[NodeType]): ConfigFileTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  87. implicit def toControlStructureTraversalExtGen[NodeType <: ControlStructure](trav: IterableOnce[NodeType]): ControlStructureTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  88. implicit def toDeclarationTraversalExtGen[NodeType <: Declaration](trav: IterableOnce[NodeType]): DeclarationTraversalExtGen[NodeType]
    Definition Classes
    NodeBaseTypeTraversalImplicits
  89. implicit def toDependencyTraversalExtGen[NodeType <: Dependency](trav: IterableOnce[NodeType]): DependencyTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  90. implicit def toExpression[A <: Expression](a: IterableOnce[A]): ExpressionTraversal[A]
  91. implicit def toExpressionMethods(node: Expression): ExpressionMethods
  92. implicit def toExpressionTraversalExtGen[NodeType <: Expression](trav: IterableOnce[NodeType]): ExpressionTraversalExtGen[NodeType]
    Definition Classes
    NodeBaseTypeTraversalImplicits
  93. implicit def toExtendedNode(node: NodeOrDetachedNode): NodeMethods
  94. implicit def toExtendedStoredNode(node: StoredNode): StoredNodeMethods
  95. implicit def toFieldAccessExt(fieldAccess: FieldAccess): FieldAccessMethods
    Definition Classes
    Implicits
  96. implicit def toFieldAccessTrav(steps: Traversal[FieldAccess]): FieldAccessTraversal
    Definition Classes
    Implicits
  97. implicit def toFieldIdentifierTraversalExtGen[NodeType <: FieldIdentifier](trav: IterableOnce[NodeType]): FieldIdentifierTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  98. implicit def toFileTraversalExtGen[NodeType <: File](trav: IterableOnce[NodeType]): FileTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  99. implicit def toFindingTraversalExtGen[NodeType <: Finding](trav: IterableOnce[NodeType]): FindingTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  100. implicit def toIdentifierMethods(node: Identifier): IdentifierMethods
  101. implicit def toIdentifierTraversalExtGen[NodeType <: Identifier](trav: IterableOnce[NodeType]): IdentifierTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  102. implicit def toImportTraversalExtGen[NodeType <: Import](trav: IterableOnce[NodeType]): ImportTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  103. implicit def toJumpLabelTraversalExtGen[NodeType <: JumpLabel](trav: IterableOnce[NodeType]): JumpLabelTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  104. implicit def toJumpTargetTraversalExtGen[NodeType <: JumpTarget](trav: IterableOnce[NodeType]): JumpTargetTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  105. implicit def toKeyValuePairTraversalExtGen[NodeType <: KeyValuePair](trav: IterableOnce[NodeType]): KeyValuePairTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  106. implicit def toLiteralMethods(node: Literal): LiteralMethods
  107. implicit def toLiteralTraversalExtGen[NodeType <: Literal](trav: IterableOnce[NodeType]): LiteralTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  108. implicit def toLocal(traversal: IterableOnce[Local]): LocalTraversal
  109. implicit def toLocalMethods(node: Local): LocalMethods
  110. implicit def toLocalTraversalExtGen[NodeType <: Local](trav: IterableOnce[NodeType]): LocalTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  111. implicit def toLocationTraversalExtGen[NodeType <: Location](trav: IterableOnce[NodeType]): LocationTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  112. implicit def toMember(traversal: IterableOnce[Member]): MemberTraversal
  113. implicit def toMemberTraversalExtGen[NodeType <: Member](trav: IterableOnce[NodeType]): MemberTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  114. implicit def toMetaDataTraversalExtGen[NodeType <: MetaData](trav: IterableOnce[NodeType]): MetaDataTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  115. implicit def toMethod(traversal: IterableOnce[Method]): MethodTraversal
  116. implicit def toMethodMethods(node: Method): MethodMethods
  117. implicit def toMethodParamInMethods(node: MethodParameterIn): MethodParameterInMethods
  118. implicit def toMethodParamOutMethods(node: MethodParameterOut): MethodParameterOutMethods
  119. implicit def toMethodParameterInTraversalExtGen[NodeType <: MethodParameterIn](trav: IterableOnce[NodeType]): MethodParameterInTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  120. implicit def toMethodParameterOutTraversalExtGen[NodeType <: MethodParameterOut](trav: IterableOnce[NodeType]): MethodParameterOutTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  121. implicit def toMethodRefMethods(node: MethodRef): MethodRefMethods
  122. implicit def toMethodRefTraversalExtGen[NodeType <: MethodRef](trav: IterableOnce[NodeType]): MethodRefTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  123. implicit def toMethodReturnMethods(node: MethodReturn): MethodReturnMethods
  124. implicit def toMethodReturnTraversalExtGen[NodeType <: MethodReturn](trav: IterableOnce[NodeType]): MethodReturnTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  125. implicit def toMethodTraversalExtGen[NodeType <: Method](trav: IterableOnce[NodeType]): MethodTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  126. implicit def toModifierTraversalExtGen[NodeType <: Modifier](trav: IterableOnce[NodeType]): ModifierTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  127. implicit def toNamespaceBlockTraversalExtGen[NodeType <: NamespaceBlock](trav: IterableOnce[NodeType]): NamespaceBlockTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  128. implicit def toNamespaceTraversalExtGen[NodeType <: Namespace](trav: IterableOnce[NodeType]): NamespaceTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  129. implicit def toNewNodeTrav[NodeType <: NewNode](trav: Traversal[NodeType]): NewNodeSteps[NodeType]
  130. implicit def toNodeTypeStarters(cpg: Cpg): NodeTypeStarters
  131. implicit def toNodeTypeStartersOperatorExtension(cpg: Cpg): language.operatorextension.NodeTypeStarters
    Definition Classes
    Implicits
  132. implicit def toOpAstNodeExt[A <: AstNode](node: A): OpAstNodeMethods[A]
    Definition Classes
    Implicits
  133. implicit def toOpAstNodeTrav[A <: AstNode](steps: Traversal[A]): OpAstNodeTraversal[A]
    Definition Classes
    Implicits
  134. implicit def toReturnTraversalExtGen[NodeType <: Return](trav: IterableOnce[NodeType]): ReturnTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  135. implicit def toSteps[A](trav: Traversal[A]): Steps[A]
  136. implicit def toTagNodePairTraversalExtGen[NodeType <: TagNodePair](trav: IterableOnce[NodeType]): TagNodePairTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  137. implicit def toTagTraversal(trav: Traversal[Tag]): TagTraversal
  138. implicit def toTagTraversalExtGen[NodeType <: Tag](trav: IterableOnce[NodeType]): TagTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  139. implicit def toTargetExt(call: Expression): TargetMethods
    Definition Classes
    Implicits
  140. implicit def toTargetTrav(steps: Traversal[Expression]): TargetTraversal
    Definition Classes
    Implicits
  141. implicit def toTemplateDomTraversalExtGen[NodeType <: TemplateDom](trav: IterableOnce[NodeType]): TemplateDomTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  142. implicit def toTraversal[NodeType <: StoredNode](node: NodeType): Traversal[NodeType]

    Warning: implicitly lifting Node -> Traversal opens a broad space with a lot of accidental complexity and is considered a historical accident.

    Warning: implicitly lifting Node -> Traversal opens a broad space with a lot of accidental complexity and is considered a historical accident. We only keep it around because we want to preserve reachableBy(Node*), which unfortunately (due to type erasure) can't be an overload of reachableBy(Traversal*).

    In most places you should explicitly call Traversal.fromSingle instead of relying on this implicit.

  143. implicit def toTypeArgumentTraversalExtGen[NodeType <: TypeArgument](trav: IterableOnce[NodeType]): TypeArgumentTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  144. implicit def toTypeDeclTraversalExtGen[NodeType <: TypeDecl](trav: IterableOnce[NodeType]): TypeDeclTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  145. implicit def toTypeParameterTraversalExtGen[NodeType <: TypeParameter](trav: IterableOnce[NodeType]): TypeParameterTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  146. implicit def toTypeRefTraversalExtGen[NodeType <: TypeRef](trav: IterableOnce[NodeType]): TypeRefTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  147. implicit def toTypeTraversalExtGen[NodeType <: Type](trav: IterableOnce[NodeType]): TypeTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  148. implicit def toUnknownTraversalExtGen[NodeType <: Unknown](trav: IterableOnce[NodeType]): UnknownTraversalExtGen[NodeType]
    Definition Classes
    NodeTraversalImplicits
  149. object AccessPathHandling
  150. object DefaultNodeExtensionFinder extends NodeExtensionFinder
  151. object LocationCreator
  152. object NoResolve extends ICallResolver
  153. object NodeOrdering
  154. object Show
  155. object Steps

Inherited from NodeTraversalImplicits

Inherited from NodeBaseTypeTraversalImplicits

Inherited from LowPrioImplicits

Inherited from AnyRef

Inherited from Any

Ungrouped