go/ast.AssignStmt.Lhs (field)
29 uses
go/ast (current package)
ast.go#L671: Lhs []Expr
ast.go#L788: func (s *AssignStmt) Pos() token.Pos { return s.Lhs[0].Pos() }
scope.go#L136: for _, x := range d.Lhs {
walk.go#L193: walkList(v, n.Lhs)
go/parser
parser.go#L1967: return &ast.AssignStmt{Lhs: x, TokPos: pos, Tok: tok, Rhs: y}, isRange
parser.go#L2233: if len(t.Lhs) == 1 && len(t.Rhs) == 1 && isTypeSwitchAssert(t.Rhs[0]) {
parser.go#L2333: comm = &ast.AssignStmt{Lhs: lhs, TokPos: pos, Tok: tok, Rhs: []ast.Expr{rhs}}
parser.go#L2417: switch len(as.Lhs) {
parser.go#L2421: key = as.Lhs[0]
parser.go#L2423: key, value = as.Lhs[0], as.Lhs[1]
parser.go#L2425: p.errorExpected(as.Lhs[len(as.Lhs)-1].Pos(), "at most 2 expressions")
resolver.go#L163: for _, x := range decl.Lhs {
resolver.go#L183: r.declErr(decl.Lhs[0].Pos(), "no new variables on left side of :=")
resolver.go#L317: r.walkExprs(n.Lhs)
resolver.go#L433: Lhs: lhs,
go/printer
nodes.go#L1400: if len(s.Lhs) > 1 && len(s.Rhs) > 1 {
nodes.go#L1403: p.exprList(s.Pos(), s.Lhs, depth, 0, s.TokPos, false)
go/types
stmt.go#L507: if len(s.Lhs) == 0 {
stmt.go#L512: check.shortVarDecl(inNode(s, s.TokPos), s.Lhs, s.Rhs)
stmt.go#L515: check.assignVars(s.Lhs, s.Rhs)
stmt.go#L520: if len(s.Lhs) != 1 || len(s.Rhs) != 1 {
stmt.go#L530: check.binary(&x, nil, s.Lhs[0], s.Rhs[0], op, s.TokPos)
stmt.go#L534: check.assignVar(s.Lhs[0], nil, &x, "assignment")
stmt.go#L694: if len(guard.Lhs) != 1 || guard.Tok != token.DEFINE || len(guard.Rhs) != 1 {
stmt.go#L699: lhs, _ = guard.Lhs[0].(*ast.Ident)
stmt.go#L852: check.use(s.Lhs...) // avoid follow-up errors
gotest.tools/v3/internal/source
update.go#L128: if len(decl.Lhs) != 1 {