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

Class LambdaExpr

A lambda expression, for example (int x) => x + 1.

Import path

import csharp

Direct supertypes

Indirect supertypes

Predicates

getAPrimaryQlClass

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

getExplicitReturnType

Gets the explicit return type of this lambda expression, if any.

hasExplicitReturnType

Holds if this lambda expression has explicit return type.

toString

Gets a textual representation of this element.

Inherited 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.

from Callable
canReturn

Holds if this callable can return expression e.

from Callable
canYieldReturn

Holds if this callable can yield return the expression e.

from Callable
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
controlsBlock

Holds if basic block controlled is controlled by this control flow element with conditional value s. That is, controlled can only be reached from the callable entry point by going via the s edge out of some basic block ending with this element.

from ControlFlowElement
fromLibrary

Holds if this element is from an assembly.

from Element
fromSource

Holds if this element is from source code.

from Element
getACall

Gets a Call that has this callable as a target.

from Callable
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
getAControlFlowEntryNode

Gets a first control flow node executed within this element.

from ControlFlowElement
getAControlFlowExitNode

Gets a potential last control flow node executed within this element.

from ControlFlowElement
getAControlFlowNode

Gets a control flow node for this element. That is, a node in the control flow graph that corresponds to this element.

from ControlFlowElement
getALocation

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

from Expr
getAModifier

Gets a modifier of this declaration.

from Modifiable
getAParameter

Gets a parameter, if any.

from Callable
getARawParameter

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

from Parameterizable
getAReachableElement

Gets an element that is reachable from this element.

from ControlFlowElement
getAStatementBody

DEPRECATED: Use getStatementBody instead.

from Callable
getAnnotatedReturnType

Gets the annotated return type of this callable.

from Callable
getAnnotatedType

Gets the annotated type of this expression.

from Expr
getAssembly

Gets the assembly that this element was compiled into.

from ControlFlowElement
getBody

Gets the body of this callable, if any.

from Callable
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
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.

from Callable
getDeclaringType

Gets the type containing this declaration, if any.

from Declaration
getEnclosingCallablefrom AnonymousFunctionExpr
getEnclosingStmt

Gets the enclosing statement of this expression, if any.

from Expr
getEntryPoint

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

from Callable
getExitPoint

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

from Callable
getExplicitArgumentName

Gets the explicit parameter name used to pass this expression as an argument for, if any. For example, if this expression is 0 in M(second: 1, first: 0) then the result is "first".

from Expr
getExpressionBody

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

from Callable
getFile

Gets the file containing this element.

from Element
getFullyQualifiedName

Gets the fully qualified name of this element, for example the fully qualified name of M on line 3 is N.C.M in

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
getLabel

Gets a unique string label for this element.

from Callable
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 AnonymousFunctionExpr
getNumberOfChildren

Gets the number of children of this element.

from Element
getNumberOfLines

Gets the total number of lines in this callable.

from Callable
getNumberOfLinesOfCode

Gets the number of lines containing code in this callable.

from Callable
getNumberOfLinesOfComments

Gets the number of lines containing comments in this callable.

from Callable
getNumberOfParameters

Gets the number of parameters of this callable.

from Parameterizable
getParameter

Gets the ith parameter, excluding the this parameter.

from Parameterizable
getParentfrom Expr
getPrimaryQlClasses

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

from Element
getQualifiedName

Gets the fully qualified name of this element, for example the fully qualified name of M on line 3 is N.C.M in

from NamedElement
getQualifiedNameWithTypes

DEPRECATED: Use getFullyQualifiedNameWithTypes instead.

from Declaration
getRawParameter

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

from Parameterizable
getReturnType

Gets the return type of this callable.

from AnonymousFunctionExpr
getStatementBody

Gets the statement body of this callable, if any.

from Callable
getType

Gets the type of this expression.

from Expr
getUnboundDeclaration

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

from AnonymousFunctionExpr
getUndecoratedName

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

from Declaration
getValue

Gets the value of this expression, if any

from Expr
hasBody

Holds if this callable has a body or an implementation.

from Callable
hasExpressionBody

Holds if this callable has an expression body.

from Callable
hasFullyQualifiedName

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

from Declaration
hasMaybeNullFlowState

Holds if the nullable flow state of this expression may be null.

from Expr
hasModifier

Holds if this declaration has name as a modifier.

from Modifiable
hasName

Holds if this element has name ‘name’.

from NamedElement
hasNoParameters

Holds if this declaration has no parameters.

from Parameterizable
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.

from Callable
hasNotNullFlowState

Holds if the nullable flow state of this expression is not null.

from Expr
hasQualifiedName

DEPRECATED: Use hasFullyQualifiedName instead.

from Declaration
hasStatementBody

Holds if this callable has a statement body.

from Callable
hasUndecoratedName

Holds if this element has undecorated name ‘name’.

from Declaration
hasValue

Holds if this expression has a value.

from Expr
isAbstract

Holds if this declaration is abstract.

from Modifiable
isAsync

Holds if this declaration is async.

from Modifiable
isCompilerGenerated

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

from Declaration
isConst

Holds if this declaration is const.

from Modifiable
isEffectivelyInternal

Holds if this declaration is effectively internal. A declaration is considered effectively internal if it can only be referenced from the declaring assembly.

from Modifiable
isEffectivelyPrivate

Holds if this declaration is effectively private. A declaration is considered effectively private if it can only be referenced from - the declaring and its nested types, similarly to private declarations, and - the enclosing types.

from Modifiable
isEffectivelyPublic

Holds if this declaration is effectively public, meaning that it can be referenced outside the declaring assembly.

from Modifiable
isExtern

Holds if this declaration is extern.

from Modifiable
isFile

Holds if this declaration is file local.

from Modifiable
isImplicit

Holds if this expression is generated by the compiler and does not appear explicitly in the source code.

from Expr
isInternal

Holds if this declaration is internal.

from Modifiable
isLive

Holds if this element is live, that is this element can be reached from the entry point of its enclosing callable.

from ControlFlowElement
isNew

Holds if this declaration has the modifier new.

from Modifiable
isPartial

Holds if this declaration is partial.

from Modifiable
isPrivate

Holds if this declaration is private.

from Modifiable
isProtected

Holds if this declaration is protected.

from Modifiable
isPublic

Holds if this declaration is public.

from Modifiable
isRequired

Holds if this declaration has the modifier required.

from Modifiable
isSealed

Holds if this declaration is sealed.

from Modifiable
isSourceDeclaration

Holds if this declaration is unconstructed and in source code.

from Declaration
isStatic

Holds if this declaration is static.

from Modifiable
isUnboundDeclaration

Holds if this declaration is unbound.

from Declaration
isUnsafe

Holds if this declaration is unsafe.

from Modifiable
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
reachableFrom

Holds if the current element is reachable from src.

from ControlFlowElement
stripCasts

Gets an expression that is the result of stripping (recursively) all implicit and explicit casts from this expression, if any. For example, the result is reader if this expression is either (IDisposable)reader or reader as IDisposable.

from Expr
stripImplicitCasts

Gets an expression that is the result of stripping (recursively) all implicit casts from this expression, if any.

from Expr
toStringWithTypes

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

from AnonymousFunctionExpr