]> Cypherpunks repositories - gostls13.git/commitdiff
go/types, types2: don't re-evaluate context string for each function argument (optimi...
authorRobert Griesemer <gri@golang.org>
Tue, 24 Aug 2021 20:52:07 +0000 (13:52 -0700)
committerRobert Griesemer <gri@golang.org>
Wed, 25 Aug 2021 23:43:42 +0000 (23:43 +0000)
Change-Id: Ie1b4d5b64350ea42484adea14df84cacd1d2653b
Reviewed-on: https://go-review.googlesource.com/c/go/+/344576
Trust: Robert Griesemer <gri@golang.org>
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dan Scales <danscales@google.com>
src/cmd/compile/internal/types2/call.go
src/go/types/call.go

index 538fdc0fb70ec4b3738e574e83582a9f36db0c91..4bbc524856acf5f3cd4f8efbdbb9e09d1ef3b841 100644 (file)
@@ -341,8 +341,11 @@ func (check *Checker) arguments(call *syntax.CallExpr, sig *Signature, targs []T
        }
 
        // check arguments
-       for i, a := range args {
-               check.assignment(a, sigParams.vars[i].typ, check.sprintf("argument to %s", call.Fun))
+       if len(args) > 0 {
+               context := check.sprintf("argument to %s", call.Fun)
+               for i, a := range args {
+                       check.assignment(a, sigParams.vars[i].typ, context)
+               }
        }
 
        return
index 87eeef444b5b75d9de2e1de5302aba6438944324..fdecafb7811455aa031f9739db2d16d7cd7ba861 100644 (file)
@@ -347,8 +347,11 @@ func (check *Checker) arguments(call *ast.CallExpr, sig *Signature, targs []Type
        }
 
        // check arguments
-       for i, a := range args {
-               check.assignment(a, sigParams.vars[i].typ, check.sprintf("argument to %s", call.Fun))
+       if len(args) > 0 {
+               context := check.sprintf("argument to %s", call.Fun)
+               for i, a := range args {
+                       check.assignment(a, sigParams.vars[i].typ, context)
+               }
        }
 
        return