io.shiftleft.semanticcpg.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

Type members

Classlikes

class NewNodeSteps[A <: NewNode](val traversal: Traversal[A]) extends HasStoreMethod
final implicit class NewNodeTypeDeco[NodeType <: NewNode](val node: NodeType) extends AnyVal
class NewTagNodePairTraversal(traversal: Traversal[NewTagNodePair]) extends HasStoreMethod
object NoResolve extends ICallResolver
@Traversal(elementType = scala.Predef.classOf[io.shiftleft.codepropertygraph.generated.nodes.StoredNode])
final class NodeSteps[NodeType <: StoredNode](val traversal: Traversal[NodeType]) extends AnyVal

Steps for all node types

Steps for all node types

This is the base class for all steps defined on

@TraversalSource
class NodeTypeStarters(cpg: Cpg) extends TraversalSource
trait Show[A]

Typeclass for (pretty) printing an object

Typeclass for (pretty) printing an object

Companion:
object
object Show
Companion:
class
final class Steps[A](val traversal: Traversal[A]) extends AnyVal

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

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

Companion:
object
object Steps
Companion:
class
final class TagTraversal(val traversal: Traversal[Tag]) extends AnyVal

Implicits

Implicits

final implicit def NewNodeTypeDeco[NodeType <: NewNode](node: NodeType): NewNodeTypeDeco[NodeType]
implicit def cfgNodeToAsNode(node: CfgNode): AstNodeMethods
implicit def iterOnceToAnnotationParameterAssignTrav[A <: AnnotationParameterAssign](a: IterableOnce[A]): AnnotationParameterAssignTraversal
implicit def iterOnceToAnnotationTrav[A <: Annotation](a: IterableOnce[A]): AnnotationTraversal
implicit def iterOnceToAstNodeDot[A <: AstNode](a: IterableOnce[A]): AstNodeDot[A]
implicit def iterOnceToBindingMethodTrav[A <: Method](a: IterableOnce[A]): MethodTraversal
implicit def iterOnceToBindingTypeDeclTrav[A <: TypeDecl](a: IterableOnce[A]): TypeDeclTraversal
implicit def iterOnceToCallTrav[A <: Call](a: IterableOnce[A]): CallTraversal
implicit def iterOnceToCfgNodeDot[A <: Method](a: IterableOnce[A]): CfgNodeDot
implicit def iterOnceToControlStructureTrav[A <: ControlStructure](a: IterableOnce[A]): ControlStructureTraversal
implicit def iterOnceToEvalTypeAccessorsExpression[A <: Expression](a: IterableOnce[A]): EvalTypeAccessors[A]
implicit def iterOnceToEvalTypeAccessorsLocal[A <: Local](a: IterableOnce[A]): EvalTypeAccessors[A]
implicit def iterOnceToEvalTypeAccessorsMember[A <: Member](a: IterableOnce[A]): EvalTypeAccessors[A]
implicit def iterOnceToEvalTypeAccessorsMethod[A <: Method](a: IterableOnce[A]): EvalTypeAccessors[A]
implicit def iterOnceToEvalTypeAccessorsMethodReturn[A <: MethodReturn](a: IterableOnce[A]): EvalTypeAccessors[A]
implicit def iterOnceToEvalTypeAccessorsParameterIn[A <: MethodParameterIn](a: IterableOnce[A]): EvalTypeAccessors[A]
implicit def iterOnceToEvalTypeAccessorsParameterOut[A <: MethodParameterOut](a: IterableOnce[A]): EvalTypeAccessors[A]
implicit def iterOnceToFileTrav[A <: File](a: IterableOnce[A]): FileTraversal
implicit def iterOnceToIdentifierTrav[A <: Identifier](a: IterableOnce[A]): IdentifierTraversal
implicit def iterOnceToMethodParameterInTrav[A <: MethodParameterIn](a: IterableOnce[A]): MethodParameterTraversal
implicit def iterOnceToMethodParameterOutTrav[A <: MethodParameterOut](a: IterableOnce[A]): MethodParameterOutTraversal
implicit def iterOnceToMethodReturnTrav[A <: MethodReturn](a: IterableOnce[A]): MethodReturnTraversal
implicit def iterOnceToMethodTravCallGraphExt[A <: Method](a: IterableOnce[A]): MethodTraversal
implicit def iterOnceToModifierAccessorsMember[A <: Member](a: IterableOnce[A]): ModifierAccessors[A]
implicit def iterOnceToModifierAccessorsMethod[A <: Method](a: IterableOnce[A]): ModifierAccessors[A]
implicit def iterOnceToModifierAccessorsTypeDecl[A <: TypeDecl](a: IterableOnce[A]): ModifierAccessors[A]
implicit def iterOnceToNamespaceBlockTrav[A <: NamespaceBlock](a: IterableOnce[A]): NamespaceBlockTraversal
implicit def iterOnceToNamespaceTrav[A <: Namespace](a: IterableOnce[A]): NamespaceTraversal
implicit def iterOnceToNodeSteps[A <: StoredNode](a: IterableOnce[A]): NodeSteps[A]
implicit def iterOnceToOriginalCallTrav[A <: Call](a: IterableOnce[A]): CallTraversal
implicit def iterOnceToTypeDeclTrav[A <: TypeDecl](a: IterableOnce[A]): TypeDeclTraversal
implicit def iterOnceToTypeTrav[A <: Type](a: IterableOnce[A]): TypeTraversal
implicit def iterToImportTrav[A <: Import](a: IterableOnce[A]): ImportTraversal
implicit def singleToAnnotationParameterAssignTrav[A <: AnnotationParameterAssign](a: A): AnnotationParameterAssignTraversal
implicit def singleToAnnotationTrav[A <: Annotation](a: A): AnnotationTraversal
implicit def singleToAstNodeDot[A <: AstNode](a: A): AstNodeDot[A]
implicit def singleToBindingMethodTrav[A <: Method](a: A): MethodTraversal
implicit def singleToBindingTypeDeclTrav[A <: TypeDecl](a: A): TypeDeclTraversal
implicit def singleToCallTrav[A <: Call](a: A): CallTraversal
implicit def singleToCfgNodeDot[A <: Method](a: A): CfgNodeDot
implicit def singleToControlStructureTrav[A <: ControlStructure](a: A): ControlStructureTraversal
implicit def singleToEvalTypeAccessorsExpression[A <: Expression](a: A): EvalTypeAccessors[A]
implicit def singleToEvalTypeAccessorsLocal[A <: Local](a: A): EvalTypeAccessors[A]
implicit def singleToEvalTypeAccessorsMember[A <: Member](a: A): EvalTypeAccessors[A]
implicit def singleToEvalTypeAccessorsMethod[A <: Method](a: A): EvalTypeAccessors[A]
implicit def singleToEvalTypeAccessorsMethodReturn[A <: MethodReturn](a: A): EvalTypeAccessors[A]
implicit def singleToEvalTypeAccessorsParameterIn[A <: MethodParameterIn](a: A): EvalTypeAccessors[A]
implicit def singleToEvalTypeAccessorsParameterOut[A <: MethodParameterOut](a: A): EvalTypeAccessors[A]
implicit def singleToFileTrav[A <: File](a: A): FileTraversal
implicit def singleToIdentifierTrav[A <: Identifier](a: A): IdentifierTraversal
implicit def singleToImportTrav[A <: Import](a: A): ImportTraversal
implicit def singleToMethodParameterInTrav[A <: MethodParameterIn](a: A): MethodParameterTraversal
implicit def singleToMethodParameterOutTrav[A <: MethodParameterOut](a: A): MethodParameterOutTraversal
implicit def singleToMethodTravCallGraphExt[A <: Method](a: A): MethodTraversal
implicit def singleToModifierAccessorsMember[A <: Member](a: A): ModifierAccessors[A]
implicit def singleToModifierAccessorsMethod[A <: Method](a: A): ModifierAccessors[A]
implicit def singleToModifierAccessorsTypeDecl[A <: TypeDecl](a: A): ModifierAccessors[A]
implicit def singleToNamespaceBlockTrav[A <: NamespaceBlock](a: A): NamespaceBlockTraversal
implicit def singleToNamespaceTrav[A <: Namespace](a: A): NamespaceTraversal
implicit def singleToTypeDeclTrav[A <: TypeDecl](a: A): TypeDeclTraversal
implicit def singleToTypeTrav[A <: Type](a: A): TypeTraversal
implicit def toAstNodeMethods(node: AstNode): AstNodeMethods
implicit def toCallMethods(node: Call): CallMethods
implicit def toCfgNodeMethods(node: CfgNode): CfgNodeMethods
implicit def toExpression[A <: Expression](a: IterableOnce[A]): ExpressionTraversal[A]
implicit def toExpressionMethods(node: Expression): ExpressionMethods
implicit def toExtendedNode(node: NodeOrDetachedNode): NodeMethods
implicit def toExtendedStoredNode(node: StoredNode): StoredNodeMethods
implicit def toIdentifierMethods(node: Identifier): IdentifierMethods
implicit def toLiteralMethods(node: Literal): LiteralMethods
implicit def toLocal(traversal: IterableOnce[Local]): LocalTraversal
implicit def toLocalMethods(node: Local): LocalMethods
implicit def toMember(traversal: IterableOnce[Member]): MemberTraversal
implicit def toMethod(traversal: IterableOnce[Method]): MethodTraversal
implicit def toMethodMethods(node: Method): MethodMethods
implicit def toMethodParamInMethods(node: MethodParameterIn): MethodParameterInMethods
implicit def toMethodParamOutMethods(node: MethodParameterOut): MethodParameterOutMethods
implicit def toMethodRefMethods(node: MethodRef): MethodRefMethods
implicit def toMethodReturnMethods(node: MethodReturn): MethodReturnMethods
implicit def toNewNodeTrav[NodeType <: NewNode](trav: Traversal[NodeType]): NewNodeSteps[NodeType]
implicit def toNodeTypeStarters(cpg: Cpg): NodeTypeStarters
implicit def toSteps[A](trav: Traversal[A]): Steps[A]
implicit def toTagTraversal(trav: Traversal[Tag]): TagTraversal
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. 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*).

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.

Inherited implicits

implicit def iterOnceToAstNodeTraversal[A <: AstNode](a: IterableOnce[A]): AstNodeTraversal[A]
Inherited from:
LowPrioImplicits
implicit def iterOnceToCfgNodeTraversal[A <: CfgNode](a: IterableOnce[A]): CfgNodeTraversal[A]
Inherited from:
LowPrioImplicits
implicit def singleToAstNodeTraversal[A <: AstNode](a: A): AstNodeTraversal[A]
Inherited from:
LowPrioImplicits
implicit def singleToCfgNodeTraversal[A <: CfgNode](a: A): CfgNodeTraversal[A]
Inherited from:
LowPrioImplicits
implicit def toAnnotationLiteralTraversalExtGen[NodeType <: AnnotationLiteral](trav: IterableOnce[NodeType]): AnnotationLiteralTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toAnnotationParameterAssignTraversalExtGen[NodeType <: AnnotationParameterAssign](trav: IterableOnce[NodeType]): AnnotationParameterAssignTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toAnnotationParameterTraversalExtGen[NodeType <: AnnotationParameter](trav: IterableOnce[NodeType]): AnnotationParameterTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toAnnotationTraversalExtGen[NodeType <: Annotation](trav: IterableOnce[NodeType]): AnnotationTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toArrayAccessExt(arrayAccess: ArrayAccess): ArrayAccessMethods
Inherited from:
Implicits
implicit def toArrayAccessTrav(steps: Traversal[ArrayAccess]): ArrayAccessTraversal
Inherited from:
Implicits
implicit def toArrayInitializerTraversalExtGen[NodeType <: ArrayInitializer](trav: IterableOnce[NodeType]): ArrayInitializerTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toAssignmentExt(assignment: Assignment): AssignmentMethods
Inherited from:
Implicits
implicit def toAssignmentTrav(steps: Traversal[Assignment]): AssignmentTraversal
Inherited from:
Implicits
implicit def toAstNodeTraversalExtGen[NodeType <: AstNode](trav: IterableOnce[NodeType]): AstNodeTraversalExtGen[NodeType]
Inherited from:
NodeBaseTypeTraversalImplicits
implicit def toBindingTraversalExtGen[NodeType <: Binding](trav: IterableOnce[NodeType]): BindingTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toBlockTraversalExtGen[NodeType <: Block](trav: IterableOnce[NodeType]): BlockTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toCallReprTraversalExtGen[NodeType <: CallRepr](trav: IterableOnce[NodeType]): CallReprTraversalExtGen[NodeType]
Inherited from:
NodeBaseTypeTraversalImplicits
implicit def toCallTraversalExtGen[NodeType <: Call](trav: IterableOnce[NodeType]): CallTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toCfgNodeTraversalExtGen[NodeType <: CfgNode](trav: IterableOnce[NodeType]): CfgNodeTraversalExtGen[NodeType]
Inherited from:
NodeBaseTypeTraversalImplicits
implicit def toClosureBindingTraversalExtGen[NodeType <: ClosureBinding](trav: IterableOnce[NodeType]): ClosureBindingTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toCommentTraversalExtGen[NodeType <: Comment](trav: IterableOnce[NodeType]): CommentTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toConfigFileTraversalExtGen[NodeType <: ConfigFile](trav: IterableOnce[NodeType]): ConfigFileTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toControlStructureTraversalExtGen[NodeType <: ControlStructure](trav: IterableOnce[NodeType]): ControlStructureTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toDeclarationTraversalExtGen[NodeType <: Declaration](trav: IterableOnce[NodeType]): DeclarationTraversalExtGen[NodeType]
Inherited from:
NodeBaseTypeTraversalImplicits
implicit def toDependencyTraversalExtGen[NodeType <: Dependency](trav: IterableOnce[NodeType]): DependencyTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toExpressionTraversalExtGen[NodeType <: Expression](trav: IterableOnce[NodeType]): ExpressionTraversalExtGen[NodeType]
Inherited from:
NodeBaseTypeTraversalImplicits
implicit def toFieldAccessExt(fieldAccess: FieldAccess): FieldAccessMethods
Inherited from:
Implicits
implicit def toFieldAccessTrav(steps: Traversal[FieldAccess]): FieldAccessTraversal
Inherited from:
Implicits
implicit def toFieldIdentifierTraversalExtGen[NodeType <: FieldIdentifier](trav: IterableOnce[NodeType]): FieldIdentifierTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toFileTraversalExtGen[NodeType <: File](trav: IterableOnce[NodeType]): FileTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toFindingTraversalExtGen[NodeType <: Finding](trav: IterableOnce[NodeType]): FindingTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toIdentifierTraversalExtGen[NodeType <: Identifier](trav: IterableOnce[NodeType]): IdentifierTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toImportTraversalExtGen[NodeType <: Import](trav: IterableOnce[NodeType]): ImportTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toJumpLabelTraversalExtGen[NodeType <: JumpLabel](trav: IterableOnce[NodeType]): JumpLabelTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toJumpTargetTraversalExtGen[NodeType <: JumpTarget](trav: IterableOnce[NodeType]): JumpTargetTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toKeyValuePairTraversalExtGen[NodeType <: KeyValuePair](trav: IterableOnce[NodeType]): KeyValuePairTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toLiteralTraversalExtGen[NodeType <: Literal](trav: IterableOnce[NodeType]): LiteralTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toLocalTraversalExtGen[NodeType <: Local](trav: IterableOnce[NodeType]): LocalTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toLocationTraversalExtGen[NodeType <: Location](trav: IterableOnce[NodeType]): LocationTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toMemberTraversalExtGen[NodeType <: Member](trav: IterableOnce[NodeType]): MemberTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toMetaDataTraversalExtGen[NodeType <: MetaData](trav: IterableOnce[NodeType]): MetaDataTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toMethodParameterInTraversalExtGen[NodeType <: MethodParameterIn](trav: IterableOnce[NodeType]): MethodParameterInTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toMethodParameterOutTraversalExtGen[NodeType <: MethodParameterOut](trav: IterableOnce[NodeType]): MethodParameterOutTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toMethodRefTraversalExtGen[NodeType <: MethodRef](trav: IterableOnce[NodeType]): MethodRefTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toMethodReturnTraversalExtGen[NodeType <: MethodReturn](trav: IterableOnce[NodeType]): MethodReturnTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toMethodTraversalExtGen[NodeType <: Method](trav: IterableOnce[NodeType]): MethodTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toModifierTraversalExtGen[NodeType <: Modifier](trav: IterableOnce[NodeType]): ModifierTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toNamespaceBlockTraversalExtGen[NodeType <: NamespaceBlock](trav: IterableOnce[NodeType]): NamespaceBlockTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toNamespaceTraversalExtGen[NodeType <: Namespace](trav: IterableOnce[NodeType]): NamespaceTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
Inherited from:
Implicits
implicit def toOpAstNodeExt[A <: AstNode](node: A): OpAstNodeMethods[A]
Inherited from:
Implicits
implicit def toOpAstNodeTrav[A <: AstNode](steps: Traversal[A]): OpAstNodeTraversal[A]
Inherited from:
Implicits
implicit def toReturnTraversalExtGen[NodeType <: Return](trav: IterableOnce[NodeType]): ReturnTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toTagNodePairTraversalExtGen[NodeType <: TagNodePair](trav: IterableOnce[NodeType]): TagNodePairTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toTagTraversalExtGen[NodeType <: Tag](trav: IterableOnce[NodeType]): TagTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toTargetExt(call: Expression): TargetMethods
Inherited from:
Implicits
implicit def toTargetTrav(steps: Traversal[Expression]): TargetTraversal
Inherited from:
Implicits
implicit def toTemplateDomTraversalExtGen[NodeType <: TemplateDom](trav: IterableOnce[NodeType]): TemplateDomTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toTypeArgumentTraversalExtGen[NodeType <: TypeArgument](trav: IterableOnce[NodeType]): TypeArgumentTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toTypeDeclTraversalExtGen[NodeType <: TypeDecl](trav: IterableOnce[NodeType]): TypeDeclTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toTypeParameterTraversalExtGen[NodeType <: TypeParameter](trav: IterableOnce[NodeType]): TypeParameterTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toTypeRefTraversalExtGen[NodeType <: TypeRef](trav: IterableOnce[NodeType]): TypeRefTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toTypeTraversalExtGen[NodeType <: Type](trav: IterableOnce[NodeType]): TypeTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits
implicit def toUnknownTraversalExtGen[NodeType <: Unknown](trav: IterableOnce[NodeType]): UnknownTraversalExtGen[NodeType]
Inherited from:
NodeTraversalImplicits