]> Cypherpunks.ru repositories - gostls13.git/commit
[dev.typeparams] cmd/compile: switch CaptureVars to use syntax.Walk
authorMatthew Dempsky <mdempsky@google.com>
Wed, 23 Jun 2021 21:45:34 +0000 (14:45 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Fri, 25 Jun 2021 04:58:18 +0000 (04:58 +0000)
commitbadb98364b3710933de89bfe579fb8d1f82741c8
treeaa094f132d954372ddce054c632a18de16b8f454
parent2493c727425547db935a1c6e519bc19d01476380
[dev.typeparams] cmd/compile: switch CaptureVars to use syntax.Walk

This CL refactors CaptureVars to use a visitor type so it's easier to
break out helper functions to review.

It also simplifies the quirks-mode handling of function literals:
instead of trying to maintain information about whether we're inside a
function literal or not, it now just rewrites the recorded position
information for any newly added free variables after walking the
function literal.

(Quirks mode is only for "toolstash -cmp"-style binary output testing
of normal code and will eventually be removed, so I don't think it's
important that this is an O(N^2) algorithm for deeply nested function
literals with lots of free variables.)

Change-Id: I0689984f6d88cf9937d4706d2d8de96415eaeee3
Reviewed-on: https://go-review.googlesource.com/c/go/+/330789
Trust: Matthew Dempsky <mdempsky@google.com>
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/cmd/compile/internal/noder/writer.go