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
- Alphabetic
- By Inheritance
- language
- NodeTraversalImplicits
- NodeBaseTypeTraversalImplicits
- LowPrioImplicits
- Implicits
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Package Members
- package bindingextension
- package callgraphextension
- package dotextension
- package nodemethods
- package operatorextension
- package types
Type Members
- trait HasLocation extends Any
- trait HasStoreMethod extends AnyRef
- trait ICallResolver extends AnyRef
- class NewNodeSteps[A <: NewNode] extends HasStoreMethod
- implicit final class NewNodeTypeDeco[NodeType <: NewNode] extends AnyVal
- class NewTagNodePairTraversal extends HasStoreMethod
- trait NodeExtensionFinder extends AnyRef
- 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()
- class NodeTypeStarters extends TraversalSource
- Annotations
- @TraversalSource()
- trait Show[A] extends AnyRef
Typeclass for (pretty) printing an object
- 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
- final class TagTraversal extends AnyVal
Value Members
- implicit def cfgNodeToAsNode(node: CfgNode): AstNodeMethods
- implicit def graphToInterproceduralDot(cpg: Cpg): InterproceduralNodeDot
- 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 iterOnceToAstNodeTraversal[A <: AstNode](a: IterableOnce[A]): AstNodeTraversal[A]
- Definition Classes
- LowPrioImplicits
- 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 iterOnceToCfgNodeTraversal[A <: CfgNode](a: IterableOnce[A]): CfgNodeTraversal[A]
- Definition Classes
- LowPrioImplicits
- 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 singleToAstNodeTraversal[A <: AstNode](a: A): AstNodeTraversal[A]
- Definition Classes
- LowPrioImplicits
- 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 singleToCfgNodeTraversal[A <: CfgNode](a: A): CfgNodeTraversal[A]
- Definition Classes
- LowPrioImplicits
- 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 toAnnotationLiteralTraversalExtGen[NodeType <: AnnotationLiteral](trav: IterableOnce[NodeType]): AnnotationLiteralTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toAnnotationParameterAssignTraversalExtGen[NodeType <: AnnotationParameterAssign](trav: IterableOnce[NodeType]): AnnotationParameterAssignTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toAnnotationParameterTraversalExtGen[NodeType <: AnnotationParameter](trav: IterableOnce[NodeType]): AnnotationParameterTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toAnnotationTraversalExtGen[NodeType <: Annotation](trav: IterableOnce[NodeType]): AnnotationTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toArrayAccessExt(arrayAccess: ArrayAccess): ArrayAccessMethods
- Definition Classes
- Implicits
- implicit def toArrayAccessTrav(steps: Traversal[ArrayAccess]): ArrayAccessTraversal
- Definition Classes
- Implicits
- implicit def toArrayInitializerTraversalExtGen[NodeType <: ArrayInitializer](trav: IterableOnce[NodeType]): ArrayInitializerTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toAssignmentExt(assignment: Assignment): AssignmentMethods
- Definition Classes
- Implicits
- implicit def toAssignmentTrav(steps: Traversal[Assignment]): AssignmentTraversal
- Definition Classes
- Implicits
- implicit def toAstNodeMethods(node: AstNode): AstNodeMethods
- implicit def toAstNodeTraversalExtGen[NodeType <: AstNode](trav: IterableOnce[NodeType]): AstNodeTraversalExtGen[NodeType]
- Definition Classes
- NodeBaseTypeTraversalImplicits
- implicit def toBindingTraversalExtGen[NodeType <: Binding](trav: IterableOnce[NodeType]): BindingTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toBlockTraversalExtGen[NodeType <: Block](trav: IterableOnce[NodeType]): BlockTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toCallMethods(node: Call): CallMethods
- implicit def toCallReprTraversalExtGen[NodeType <: CallRepr](trav: IterableOnce[NodeType]): CallReprTraversalExtGen[NodeType]
- Definition Classes
- NodeBaseTypeTraversalImplicits
- implicit def toCallTraversalExtGen[NodeType <: Call](trav: IterableOnce[NodeType]): CallTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toCfgNodeMethods(node: CfgNode): CfgNodeMethods
- implicit def toCfgNodeTraversalExtGen[NodeType <: CfgNode](trav: IterableOnce[NodeType]): CfgNodeTraversalExtGen[NodeType]
- Definition Classes
- NodeBaseTypeTraversalImplicits
- implicit def toClosureBindingTraversalExtGen[NodeType <: ClosureBinding](trav: IterableOnce[NodeType]): ClosureBindingTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toCommentTraversalExtGen[NodeType <: Comment](trav: IterableOnce[NodeType]): CommentTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toConfigFileTraversalExtGen[NodeType <: ConfigFile](trav: IterableOnce[NodeType]): ConfigFileTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toControlStructureTraversalExtGen[NodeType <: ControlStructure](trav: IterableOnce[NodeType]): ControlStructureTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toDeclarationTraversalExtGen[NodeType <: Declaration](trav: IterableOnce[NodeType]): DeclarationTraversalExtGen[NodeType]
- Definition Classes
- NodeBaseTypeTraversalImplicits
- implicit def toDependencyTraversalExtGen[NodeType <: Dependency](trav: IterableOnce[NodeType]): DependencyTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toExpression[A <: Expression](a: IterableOnce[A]): ExpressionTraversal[A]
- implicit def toExpressionMethods(node: Expression): ExpressionMethods
- implicit def toExpressionTraversalExtGen[NodeType <: Expression](trav: IterableOnce[NodeType]): ExpressionTraversalExtGen[NodeType]
- Definition Classes
- NodeBaseTypeTraversalImplicits
- implicit def toExtendedNode(node: NodeOrDetachedNode): NodeMethods
- implicit def toExtendedStoredNode(node: StoredNode): StoredNodeMethods
- implicit def toFieldAccessExt(fieldAccess: FieldAccess): FieldAccessMethods
- Definition Classes
- Implicits
- implicit def toFieldAccessTrav(steps: Traversal[FieldAccess]): FieldAccessTraversal
- Definition Classes
- Implicits
- implicit def toFieldIdentifierTraversalExtGen[NodeType <: FieldIdentifier](trav: IterableOnce[NodeType]): FieldIdentifierTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toFileTraversalExtGen[NodeType <: File](trav: IterableOnce[NodeType]): FileTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toFindingTraversalExtGen[NodeType <: Finding](trav: IterableOnce[NodeType]): FindingTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toIdentifierMethods(node: Identifier): IdentifierMethods
- implicit def toIdentifierTraversalExtGen[NodeType <: Identifier](trav: IterableOnce[NodeType]): IdentifierTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toImportTraversalExtGen[NodeType <: Import](trav: IterableOnce[NodeType]): ImportTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toJumpLabelTraversalExtGen[NodeType <: JumpLabel](trav: IterableOnce[NodeType]): JumpLabelTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toJumpTargetTraversalExtGen[NodeType <: JumpTarget](trav: IterableOnce[NodeType]): JumpTargetTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toKeyValuePairTraversalExtGen[NodeType <: KeyValuePair](trav: IterableOnce[NodeType]): KeyValuePairTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toLiteralMethods(node: Literal): LiteralMethods
- implicit def toLiteralTraversalExtGen[NodeType <: Literal](trav: IterableOnce[NodeType]): LiteralTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toLocal(traversal: IterableOnce[Local]): LocalTraversal
- implicit def toLocalMethods(node: Local): LocalMethods
- implicit def toLocalTraversalExtGen[NodeType <: Local](trav: IterableOnce[NodeType]): LocalTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toLocationTraversalExtGen[NodeType <: Location](trav: IterableOnce[NodeType]): LocationTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toMember(traversal: IterableOnce[Member]): MemberTraversal
- implicit def toMemberTraversalExtGen[NodeType <: Member](trav: IterableOnce[NodeType]): MemberTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toMetaDataTraversalExtGen[NodeType <: MetaData](trav: IterableOnce[NodeType]): MetaDataTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- 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 toMethodParameterInTraversalExtGen[NodeType <: MethodParameterIn](trav: IterableOnce[NodeType]): MethodParameterInTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toMethodParameterOutTraversalExtGen[NodeType <: MethodParameterOut](trav: IterableOnce[NodeType]): MethodParameterOutTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toMethodRefMethods(node: MethodRef): MethodRefMethods
- implicit def toMethodRefTraversalExtGen[NodeType <: MethodRef](trav: IterableOnce[NodeType]): MethodRefTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toMethodReturnMethods(node: MethodReturn): MethodReturnMethods
- implicit def toMethodReturnTraversalExtGen[NodeType <: MethodReturn](trav: IterableOnce[NodeType]): MethodReturnTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toMethodTraversalExtGen[NodeType <: Method](trav: IterableOnce[NodeType]): MethodTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toModifierTraversalExtGen[NodeType <: Modifier](trav: IterableOnce[NodeType]): ModifierTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toNamespaceBlockTraversalExtGen[NodeType <: NamespaceBlock](trav: IterableOnce[NodeType]): NamespaceBlockTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toNamespaceTraversalExtGen[NodeType <: Namespace](trav: IterableOnce[NodeType]): NamespaceTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toNewNodeTrav[NodeType <: NewNode](trav: Traversal[NodeType]): NewNodeSteps[NodeType]
- implicit def toNodeTypeStarters(cpg: Cpg): NodeTypeStarters
- implicit def toNodeTypeStartersOperatorExtension(cpg: Cpg): language.operatorextension.NodeTypeStarters
- Definition Classes
- Implicits
- implicit def toOpAstNodeExt[A <: AstNode](node: A): OpAstNodeMethods[A]
- Definition Classes
- Implicits
- implicit def toOpAstNodeTrav[A <: AstNode](steps: Traversal[A]): OpAstNodeTraversal[A]
- Definition Classes
- Implicits
- implicit def toReturnTraversalExtGen[NodeType <: Return](trav: IterableOnce[NodeType]): ReturnTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toSteps[A](trav: Traversal[A]): Steps[A]
- implicit def toTagNodePairTraversalExtGen[NodeType <: TagNodePair](trav: IterableOnce[NodeType]): TagNodePairTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toTagTraversal(trav: Traversal[Tag]): TagTraversal
- implicit def toTagTraversalExtGen[NodeType <: Tag](trav: IterableOnce[NodeType]): TagTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toTargetExt(call: Expression): TargetMethods
- Definition Classes
- Implicits
- implicit def toTargetTrav(steps: Traversal[Expression]): TargetTraversal
- Definition Classes
- Implicits
- implicit def toTemplateDomTraversalExtGen[NodeType <: TemplateDom](trav: IterableOnce[NodeType]): TemplateDomTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- 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 preservereachableBy(Node*)
, which unfortunately (due to type erasure) can't be an overload ofreachableBy(Traversal*)
.In most places you should explicitly call
Traversal.fromSingle
instead of relying on this implicit. - implicit def toTypeArgumentTraversalExtGen[NodeType <: TypeArgument](trav: IterableOnce[NodeType]): TypeArgumentTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toTypeDeclTraversalExtGen[NodeType <: TypeDecl](trav: IterableOnce[NodeType]): TypeDeclTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toTypeParameterTraversalExtGen[NodeType <: TypeParameter](trav: IterableOnce[NodeType]): TypeParameterTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toTypeRefTraversalExtGen[NodeType <: TypeRef](trav: IterableOnce[NodeType]): TypeRefTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toTypeTraversalExtGen[NodeType <: Type](trav: IterableOnce[NodeType]): TypeTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- implicit def toUnknownTraversalExtGen[NodeType <: Unknown](trav: IterableOnce[NodeType]): UnknownTraversalExtGen[NodeType]
- Definition Classes
- NodeTraversalImplicits
- object AccessPathHandling
- object DefaultNodeExtensionFinder extends NodeExtensionFinder
- object LocationCreator
- object NoResolve extends ICallResolver
- object NodeOrdering
- object Show
- object Steps