From: Robert Griesemer Date: Fri, 24 Sep 2010 19:58:08 +0000 (-0700) Subject: gofmt: don't substitute invalid positions with valid ones in rewrites X-Git-Tag: weekly.2010-09-29~53 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=daf64bf567354167aa0f60a7e4688892e55825dd;p=gostls13.git gofmt: don't substitute invalid positions with valid ones in rewrites Fixes rewrite bug: 'f(x) -> f(0)' where functions "picked up" ... arguments. R=rsc CC=golang-dev https://golang.org/cl/2279041 --- diff --git a/src/cmd/gofmt/rewrite.go b/src/cmd/gofmt/rewrite.go index 3aaaebdd1a..6170a64f4d 100644 --- a/src/cmd/gofmt/rewrite.go +++ b/src/cmd/gofmt/rewrite.go @@ -203,6 +203,10 @@ func subst(m map[string]reflect.Value, pattern reflect.Value, pos reflect.Value) } if pos != nil && pattern.Type() == positionType { + // use new position only if old position was valid in the first place + if old := pattern.Interface().(token.Position); !old.IsValid() { + return pattern + } return pos }