CodeQL library for Go
codeql/go-all 2.1.3-dev (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

Known direct subtypes

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