go/ast.AssignStmt.Lhs (field)

30 uses

	go/ast (current package)
		ast.go#L662: 		Lhs    []Expr
		ast.go#L778: func (s *AssignStmt) Pos() token.Pos     { return s.Lhs[0].Pos() }
		scope.go#L125: 		for _, x := range d.Lhs {
		walk.go#L217: 		walkExprList(v, n.Lhs)

	go/parser
		parser.go#L1915: 		as := &ast.AssignStmt{Lhs: x, TokPos: pos, Tok: tok, Rhs: y}
		parser.go#L1967: 	for _, x := range as.Lhs {
		parser.go#L2205: 		if len(t.Lhs) == 1 && len(t.Rhs) == 1 && isTypeSwitchAssert(t.Rhs[0]) {
		parser.go#L2305: 				as := &ast.AssignStmt{Lhs: lhs, TokPos: pos, Tok: tok, Rhs: []ast.Expr{rhs}}
		parser.go#L2393: 		switch len(as.Lhs) {
		parser.go#L2397: 			key = as.Lhs[0]
		parser.go#L2399: 			key, value = as.Lhs[0], as.Lhs[1]
		parser.go#L2401: 			p.errorExpected(as.Lhs[len(as.Lhs)-1].Pos(), "at most 2 expressions")
		resolver.go#L158: 	for _, x := range decl.Lhs {
		resolver.go#L178: 		r.declErr(decl.Lhs[0].Pos(), "no new variables on left side of :=")
		resolver.go#L313: 			r.walkExprs(n.Lhs)
		resolver.go#L429: 					Lhs:    lhs,

	go/printer
		nodes.go#L1341: 		if len(s.Lhs) > 1 && len(s.Rhs) > 1 {
		nodes.go#L1344: 		p.exprList(s.Pos(), s.Lhs, depth, 0, s.TokPos, false)

	go/types
		stmt.go#L469: 			if len(s.Lhs) == 0 {
		stmt.go#L474: 				check.shortVarDecl(inNode(s, s.TokPos), s.Lhs, s.Rhs)
		stmt.go#L477: 				check.assignVars(s.Lhs, s.Rhs)
		stmt.go#L482: 			if len(s.Lhs) != 1 || len(s.Rhs) != 1 {
		stmt.go#L492: 			check.binary(&x, nil, s.Lhs[0], s.Rhs[0], op, s.TokPos)
		stmt.go#L496: 			check.assignVar(s.Lhs[0], &x)
		stmt.go#L650: 			if len(guard.Lhs) != 1 || guard.Tok != token.DEFINE || len(guard.Rhs) != 1 {
		stmt.go#L655: 			lhs, _ = guard.Lhs[0].(*ast.Ident)
		stmt.go#L818: 			check.use(s.Lhs...) // avoid follow-up errors

	gotest.tools/v3/internal/source
		update.go#L108: 		if len(decl.Lhs) != 1 {