CodeQL library for Ruby
codeql/ruby-all 0.8.15-dev (changelog, source)
Search

Module ApiGraphModelsSpecific

Contains the language-specific part of the models-as-data implementation found in ApiGraphModels.qll.

It must export the following members:

class Unit // a unit type
class InvokeNode // a type representing an invocation connected to the API graph
module API // the API graph module
predicate isPackageUsed(string package)
API::Node getExtraNodeFromPath(string package, string type, string path, int n)
API::Node getExtraSuccessorFromNode(API::Node node, AccessPathTokenBase token)
API::Node getExtraSuccessorFromInvoke(InvokeNode node, AccessPathTokenBase token)
predicate invocationMatchesExtraCallSiteFilter(InvokeNode invoke, AccessPathTokenBase token)
InvokeNode getAnInvocationOf(API::Node node)
predicate isExtraValidTokenNameInIdentifyingAccessPath(string name)
predicate isExtraValidNoArgumentTokenInIdentifyingAccessPath(string name)
predicate isExtraValidTokenArgumentInIdentifyingAccessPath(string name, string argument)

Import path

import codeql.ruby.frameworks.data.internal.ApiGraphModelsSpecific

Imports

ApiGraphs

Provides an implementation of API graphs, which allow efficient modelling of how a given value is used by the code base or how values produced by the code base are consumed by a library.

Predicates

getAFuzzySuccessor
getAnInvocationOf

Gets the InvokeNode corresponding to a specific invocation of node.

getExtraNodeFromPath

Gets a Ruby-specific interpretation of the (type, path) tuple after resolving the first n access path tokens.

getExtraNodeFromType

Gets a Ruby-specific interpretation of the given type.

getExtraSuccessorFromInvoke

Gets a Ruby-specific API graph successor of node reachable by resolving token.

getExtraSuccessorFromNode

Gets a Ruby-specific API graph successor of node reachable by resolving token.

hasImplicitTypeModel

Holds if type can be obtained from an instance of otherType due to language semantics modeled by getExtraNodeFromType.

invocationMatchesExtraCallSiteFilter

Holds if invoke matches the Ruby-specific call site filter in token.

isExtraValidNoArgumentTokenInIdentifyingAccessPath

Holds if name is a valid name for an access path token with no arguments, occurring in an identifying access path.

isExtraValidTokenArgumentInIdentifyingAccessPath

Holds if argument is a valid argument to an access path token with the given name, occurring in an identifying access path.

isExtraValidTokenNameInIdentifyingAccessPath

Holds if name is a valid name for an access path token in the identifying access path.

isTypeUsed

Classes

InvokeNode

An API graph node representing a method call.

Modules

Aliases

DataFlow

Provides classes for performing local (intra-procedural) and global (inter-procedural) data flow analyses.