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

Class SelectStmt

A select statement.

Examples:

select {
case i1 = <-c1:
  print("received ", i1, " from c1\n")
case c2 <- i2:
  print("sent ", i2, " to c2\n")
case i3, ok := (<-c3):  // same as: i3, ok := <-c3
  if ok {
    print("received ", i3, " from c3\n")
  } else {
    print("c3 is closed\n")
  }
default:
  print("no communication\n")
}

Import path

import semmle.go.Stmt

Direct supertypes

Indirect supertypes

Predicates

getACommClause

Gets a comm clause in this select statement.

getAPrimaryQlClass

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

getBody

Gets the body of this select statement.

getCommClause

Gets the ith comm clause (that is, case or default clause) in this select statement.

getDefaultCommClause

Gets the default clause in this select statement, if any.

getNonDefaultCommClause

Gets the ith case clause in this select statement.

getNumNonDefaultCommClause

Gets the number of case clauses in this select statement.

mayHaveSideEffects

Holds if the execution of this statement may produce observable side effects.

toString

Gets a textual representation of this element.

Inherited predicates

getAChild

Gets a child node of this node.

from AstNode
getAChildExpr

Gets an expression that is a child node of this node in the AST.

from ExprParent
getAChildStmt

Gets a statement that is a child node of this node in the AST.

from StmtParent
getChild

Gets the ith child node of this node.

from AstNode
getChildExpr

Gets the ith child expression of this node.

from ExprParent
getChildStmt

Gets the ith child statement of this node.

from StmtParent
getEnclosingBlock

Gets the innermost block statement to which this AST node belongs, if any.

from AstNode
getEnclosingFunction

Gets the innermost function definition to which this AST node belongs, if any.

from AstNode
getFile

Gets the file this program element comes from.

from Locatable
getFirstControlFlowNode

Gets the first control-flow node in this statement.

from Stmt
getKind

Gets the kind of this statement, which is an integer value representing the statement’s node type.

from Stmt
getLocation

Gets this element’s location.

from Locatable
getNumChild

Gets the number of child nodes of this node.

from AstNode
getNumChildExpr

Gets the number of child expressions of this node.

from ExprParent
getNumChildStmt

Gets the number of child statements of this node.

from StmtParent
getNumLines

Gets the number of lines covered by this element.

from Locatable
getParent

Gets the parent node of this AST node, if any.

from AstNode
getPrimaryQlClasses

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

from AstNode
getUniquelyNumberedChild

Get an AstNode child, ordered by child kind and then by index.

from AstNode
hasLocationInfo

Holds if this element is at the specified location. The location spans column startcolumn of line startline to column endcolumn of line endline in file filepath. For more information, see Locations.

from Locatable