go/src/cmd/compile/internal/typecheck/stmt.go

func RangeExprType(t *types.Type) *types.Type {}

func typecheckrangeExpr(n *ir.RangeStmt) {}

// type check assignment.
// if this assignment is the definition of a var on the left side,
// fill in the var's type.
func tcAssign(n *ir.AssignStmt) {}

func tcAssignList(n *ir.AssignListStmt) {}

func assign(stmt ir.Node, lhs, rhs []ir.Node) {}

func plural(n int) string {}

// tcCheckNil typechecks an OCHECKNIL node.
func tcCheckNil(n *ir.UnaryExpr) ir.Node {}

// tcFor typechecks an OFOR node.
func tcFor(n *ir.ForStmt) ir.Node {}

// tcGoDefer typechecks (normalizes) an OGO/ODEFER statement.
func tcGoDefer(n *ir.GoDeferStmt) {}

// normalizeGoDeferCall normalizes call into a normal function call
// with no arguments and no results, suitable for use in an OGO/ODEFER
// statement.
//
// For example, it normalizes:
//
//	f(x, y)
//
// into:
//
//	x1, y1 := x, y          // added to init
//	func() { f(x1, y1) }()  // result
func normalizeGoDeferCall(pos src.XPos, op ir.Op, call ir.Node, init *ir.Nodes) *ir.CallExpr {}

// tcIf typechecks an OIF node.
func tcIf(n *ir.IfStmt) ir.Node {}

// range
func tcRange(n *ir.RangeStmt) {}

// tcReturn typechecks an ORETURN node.
func tcReturn(n *ir.ReturnStmt) ir.Node {}

// select
func tcSelect(sel *ir.SelectStmt) {}

// tcSend typechecks an OSEND node.
func tcSend(n *ir.SendStmt) ir.Node {}

// tcSwitch typechecks a switch statement.
func tcSwitch(n *ir.SwitchStmt) {}

func tcSwitchExpr(n *ir.SwitchStmt) {}

func tcSwitchType(n *ir.SwitchStmt) {}

type typeSet

func (s *typeSet) add(pos src.XPos, typ *types.Type) {}