CodeQL library for C#
codeql/csharp-all 0.9.2-dev (changelog, source)
Search

Class Callable

An element that can be called.

Either a method (Method), a constructor (Constructor), a destructor (Destructor), an operator (Operator), an accessor (Accessor), an anonymous function (AnonymousFunctionExpr), or a local function (LocalFunction).

Import path

import csharp

Direct supertypes

Indirect supertypes

Known direct subtypes

Predicates

calls

Holds if callee is potentially called from this callable. That is, callee is a potential run-time target of a call in the body of this callable.

canReturn

Holds if this callable can return expression e.

canYieldReturn

Holds if this callable can yield return the expression e.

getACall

Gets a Call that has this callable as a target.

getAStatementBody

DEPRECATED: Use getStatementBody instead.

getAnnotatedReturnType

Gets the annotated return type of this callable.

getBody

Gets the body of this callable, if any.

getCyclomaticComplexity

Gets the number of branching statements (if, while, do, for, foreach switch, case, catch) plus the number of branching expressions (?, &&, ||, ??) plus one. Callables with a high cyclomatic complexity (> 10) are hard to test and maintain, given their large number of possible execution paths. They should be refactored.

getEnclosingCallable

Gets the enclosing callable of this callable, if any.

getEntryPoint

Gets the entry point in the control graph for this callable.

getExitPoint

Gets the exit point in the control graph for this callable.

getExpressionBody

Gets the expression body of this callable (if any), specified by =>.

getLabel

Gets a unique string label for this element.

getNumberOfLines

Gets the total number of lines in this callable.

getNumberOfLinesOfCode

Gets the number of lines containing code in this callable.

getNumberOfLinesOfComments

Gets the number of lines containing comments in this callable.

getReturnType

Gets the return type of this callable.

getStatementBody

Gets the statement body of this callable, if any.

getUnboundDeclaration

Gets the unbound version of this declaration, that is, the declaration where all type arguments have been removed. For example, in

hasBody

Holds if this callable has a body or an implementation.

hasExpressionBody

Holds if this callable has an expression body.

hasNonEmptyBody

Holds if this callable has a non-empty body. That is, either it has an expression body, or it has a non-empty statement body.

hasStatementBody

Holds if this callable has a statement body.

toStringWithTypes

Gets the full textual representation of this element, including type information.

Inherited predicates

compiledFromSource

Holds if this element was compiled from source code that is also present in the database. That is, this element corresponds to another element from source.

from NamedElement
fromLibrary

Holds if this element is from an assembly.

from Element
fromSource

Holds if this element is from source code.

from Element
getAChild

Gets a child of this element, if any.

from Element
getAChildExpr

Gets a child expression of this element, if any.

from ExprOrStmtParent
getAChildStmt

Gets a child statement of this element, if any.

from ExprOrStmtParent
getALocation

Gets a location of this element, including sources and assemblies.

from Element
getAParameter

Gets a parameter, if any.

from Parameterizable
getAPrimaryQlClass

Gets the name of a primary CodeQL class to which this element belongs.

from Element
getARawParameter

Gets a raw parameter (including the qualifier), if any.

from Parameterizable
getChild

Gets the ith child of this element (zero-based).

from ExprOrStmtParent
getChildExpr

Gets the ith child expression of this element (zero-based).

from ExprOrStmtParent
getChildStmt

Gets the ith child statement of this element (zero-based).

from ExprOrStmtParent
getDeclaringType

Gets the type containing this declaration, if any.

from Declaration
getFile

Gets the file containing this element.

from Element
getFullyQualifiedName

DEPRECATED: Use hasFullyQualifiedName instead.

from NamedElement
getFullyQualifiedNameDebug

INTERNAL: Do not use.

from NamedElement
getFullyQualifiedNameWithTypes

Gets the fully qualified name of this declaration, including types, for example the fully qualified name with types of M on line 3 is N.C.M(int, string) in

from Declaration
getIndex

Gets the index of this element among its parent’s other children (zero-based).

from Element
getLanguage

Gets the “language” of this program element, as defined by the extension of the filename. For example, C# has language “cs”, and Visual Basic has language “vb”.

from Element
getLocation

Gets the location of this element. Where an element has locations in source and assemblies, choose the source location. If there are multiple assembly locations, choose only one.

from Element
getName

Gets the name of this element.

from NamedElement
getNumberOfChildren

Gets the number of children of this element.

from Element
getNumberOfParameters

Gets the number of parameters of this callable.

from Parameterizable
getParameter

Gets the ith parameter, excluding the this parameter.

from Parameterizable
getParent

Gets the parent of this element, if any.

from Element
getPrimaryQlClasses

Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs.

from Element
getRawParameter

Gets raw parameter i, including the this parameter at index 0.

from Parameterizable
getUndecoratedName

Gets the name of this declaration, without additional decoration such as <...>.

from Declaration
hasFullyQualifiedName

Holds if this element has the fully qualified name qualifier.name.

from Declaration
hasName

Holds if this element has name ‘name’.

from NamedElement
hasNoParameters

Holds if this declaration has no parameters.

from Parameterizable
hasUndecoratedName

Holds if this element has undecorated name ‘name’.

from Declaration
isCompilerGenerated

Holds if this declaration has been generated by the compiler, for example implicit constructors or accessors.

from Declaration
isSourceDeclaration

Holds if this declaration is unconstructed and in source code.

from Declaration
isUnboundDeclaration

Holds if this declaration is unbound.

from Declaration
matchesHandle

Holds if other has the same metadata handle in the same assembly.

from NamedElement
parameterTypesToString

Gets the types of the parameters of this declaration as a comma-separated string.

from Parameterizable
toString

Gets a textual representation of this element.

from Declaration