]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/syntax: minor cleanups in extractName
authorRobert Griesemer <gri@golang.org>
Wed, 4 May 2022 18:56:10 +0000 (11:56 -0700)
committerRobert Griesemer <gri@golang.org>
Wed, 4 May 2022 20:20:28 +0000 (20:20 +0000)
Backport the recommended changes suggested in CL 403937.

Change-Id: I3ac29c90977e33899881838825da033627344ed2
Reviewed-on: https://go-review.googlesource.com/c/go/+/403853
Run-TryBot: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@google.com>
src/cmd/compile/internal/syntax/parser.go

index aaeb2a23c6f46a2460b2faaa8ad3ff1bc40bd589..22b1816307710d9579002faa4351fdf4c4b96398 100644 (file)
@@ -683,14 +683,14 @@ func extractName(x Expr, force bool) (*Name, Expr) {
                }
                switch x.Op {
                case Mul:
-                       if name, _ := x.X.(*Name); name != nil && (isTypeElem(x.Y) || force) {
+                       if name, _ := x.X.(*Name); name != nil && (force || isTypeElem(x.Y)) {
                                // x = name *x.Y
                                op := *x
                                op.X, op.Y = op.Y, nil // change op into unary *op.Y
                                return name, &op
                        }
                case Or:
-                       if name, lhs := extractName(x.X, isTypeElem(x.Y) || force); name != nil && lhs != nil { // note: lhs should never be nil
+                       if name, lhs := extractName(x.X, force || isTypeElem(x.Y)); name != nil && lhs != nil {
                                // x = name lhs|x.Y
                                op := *x
                                op.X = lhs
@@ -699,7 +699,7 @@ func extractName(x Expr, force bool) (*Name, Expr) {
                }
        case *CallExpr:
                if name, _ := x.Fun.(*Name); name != nil {
-                       if len(x.ArgList) == 1 && !x.HasDots && (isTypeElem(x.ArgList[0]) || force) {
+                       if len(x.ArgList) == 1 && !x.HasDots && (force || isTypeElem(x.ArgList[0])) {
                                // x = name "(" x.ArgList[0] ")"
                                return name, x.ArgList[0]
                        }