• Eli Bendersky's avatar
    cmd/gofmt: fix computation of function header size · 47d27a87
    Eli Bendersky authored
    Function sizes are computed to determine whether a function
    can be kept on one line or should be split to several lines. Part of the
    computation is the function header from the FUNC token and until the
    opening { token.
    
    Prior to this change, the function header size used distance from the
    original source position of the current token, which led to issues when
    the source between FUNC and the original source position was rewritten
    (such as whitespace being collapsed). Now we take the current output
    position into account, so that header size represents the reformatted
    source rather than the original source.
    
    The following files in the Go repository are reformatted with this
    change:
    
    * strings/strings_test.go
    * cmd/compile/internal/gc/fmt.go
    
    In both cases the reformatting is minor and seems to be correct given
    the heuristic to single-line functions longer than 100 columns to
    multiple lines.
    
    Fixes #28082
    
    Change-Id: Ib737f6933e09b79e83715211421d5262b366ec93
    ...
    47d27a87
fmt.go 40.9 KB