CodeQL library for Go
codeql/go-all 0.7.12 (changelog, source)
Search

Module Expr

Provides classes for working with expressions.

Import path

import semmle.go.Expr

Imports

go

Provides classes for working with Go programs.

Classes

AddExpr

An addition expression using +.

AddressExpr

A unary address-of expression using &.

AndExpr

A bitwise and-expression using &.

AndNotExpr

A bitwise and-not expression using &^.

ArithmeticBinaryExpr

A binary arithmetic expression, that is, +, -, *, / or %.

ArithmeticExpr

An expression with an arithmetic operator like - or /.

ArithmeticUnaryExpr

An expression with a unary arithmetic operator, that is, unary - or +.

ArrayLit

An array literal.

ArrayOrSliceLit

An array or slice literal.

ArrayTypeExpr

An expression representing an array type.

BadExpr

A bad expression, that is, an expression that could not be parsed.

BasicLit

A literal expression of basic type.

BinaryExpr

A binary expression.

BitwiseBinaryExpr

A binary bitwise expression, that is, <<, >>, |, ^, & or &^.

BitwiseExpr

An expression with a bitwise operator such as ^ or |.

BitwiseUnaryExpr

An expression with a unary bitwise operator, that is, ^.

BlankIdent

The blank identifier _.

CallExpr

A function call expression.

CallOrConversionExpr

An expression that syntactically could either be a function call or a type conversion expression.

ChanTypeExpr

An expression representing a channel type.

CharLit

A rune literal.

ComparisonExpr

A comparison expression, that is, ==, !=, <, <=, >= or >.

ComplementExpr

A unary complement expression using ^.

CompositeLit

A composite literal

ConstantName

A name referring to a constant.

ConversionExpr

A type conversion expression.

DerefExpr

A unary pointer-dereference expression.

Ellipsis

An ellipsis expression, representing either the ... type in a parameter list or the ... length in an array type.

EqlExpr

An equality test using ==.

EqualityTestExpr

An equality test, that is, == or !=.

Expr

An expression.

FloatLit

A floating-point literal.

FuncLit

A function literal.

FuncTypeExpr

An expression representing a function type.

FunctionName

A name referring to a function.

GenericFunctionInstantiationExpr

A generic function instantiation, that is, a base expression that represents a generic function, followed by a list of type arguments.

GenericTypeInstantiationExpr

A generic type instantiation, that is, a base expression that is a generic type followed by a list of type arguments.

GeqExpr

A greater-than-or-equal test using >=.

GtrExpr

A greater-than test using >.

Ident

An identifier.

ImagLit

An imaginary literal.

IndexExpr

An index expression, that is, a base expression followed by an index. Expressions which represent generic type instantiations have been excluded.

IntLit

An integer literal.

InterfaceTypeExpr

An expression representing an interface type.

KeyValueExpr

A key-value pair in a composite literal.

LabelName

A name referring to a statement label.

LandExpr

A logical-and expression using &&.

LeqExpr

A less-than-or-equal test using <=.

Literal

A literal expression.

LogicalBinaryExpr

A binary logical expression, that is, && or ||.

LogicalExpr

An expression with a logical operator like ! or &&.

LogicalUnaryExpr

An expression with a unary logical operator, that is, !.

LorExpr

A logical-or expression using ||.

LssExpr

A less-than test using <.

MapLit

A map literal.

MapTypeExpr

An expression representing a map type.

MinusExpr

A unary minus expression using -.

MulExpr

A multiplication expression using *.

Name

A (possibly qualified) name referring to a package, type, constant, variable, function or label.

NeqExpr

An inequality test using !=.

NotExpr

A unary “not” expression using !.

OperatorExpr

An expression with a (unary or binary) operator.

OrExpr

A bitwise or expression using |.

PackageName

A name referring to an imported package.

ParenExpr

A parenthesized expression.

PlusExpr

A unary plus expression using +.

PromotedSelector

A selector expression that refers to a promoted field or a promoted method. These selectors may implicitly address an embedded struct of their base type - for example, the selector x.field may implicitly address x.Embedded.field). Note they may also explicitly address field; being a PromotedSelector only indicates the addressed field or method may be promoted, not that it is promoted in this particular context.

QualifiedName

A qualified name.

QuoExpr

A division or quotient expression using /.

RecvChanTypeExpr

An expression representing a receive-only channel type.

RecvExpr

A unary receive expression using <-.

ReferenceExpr

An expression referring to a memory location.

RelationalComparisonExpr

A relational comparison, that is, <, <=, >= or >.

RemExpr

A remainder or modulo expression using %.

SelectorExpr

A selector expression, that is, a base expression followed by a selector.

SendChanTypeExpr

An expression representing a send-only channel type.

SendRecvChanTypeExpr

An expression representing a duplex channel type that can both send and receive data.

ShiftExpr

A shift expression, that is, << or >>.

ShlExpr

A left-shift expression using <<.

ShrExpr

A right-shift expression using >>.

SimpleName

A simple (that is, unqualified) name.

SliceExpr

A slice expression, that is, a base expression followed by slice indices.

SliceLit

A slice literal.

StarExpr

A star expression.

StringLit

A string literal.

StructLit

A struct literal.

StructTypeExpr

An expression representing a struct type.

SubExpr

A subtraction expression using -.

TypeAssertExpr

A type assertion expression.

TypeExpr

An expression referring to a type.

TypeName

A name referring to a type.

TypeSetLiteralExpr

An expression representing a type set literal.

UnaryExpr

An expression with a unary operator.

ValueExpr

An expression that refers to a value (as opposed to a package, a type or a statement label).

ValueName

A name referring to a value, that is, a constant, variable or function.

VariableName

A name referring to a variable.

XorExpr

An exclusive-or expression using ^.

Aliases

BitAndExpr

A bitwise and-expression using &.

BitOrExpr

A bitwise or expression using |.

DivExpr

A division or quotient expression using /.

EqExpr

An equality test using ==.

GEExpr

A greater-than-or-equal test using >=.

GTExpr

A greater-than test using >.

LEExpr

A less-than-or-equal test using <=.

LShiftExpr

A left-shift expression using <<.

LTExpr

A less-than test using <.

LogAndExpr

A logical-and expression using &&.

LogOrExpr

A logical-or expression using ||.

ModExpr

A remainder or modulo expression using %.

RShiftExpr

A right-shift expression using >>.

RuneLit

A rune literal.