golang/go

go/format: adds }

dvyukov opened this issue · 2 comments

The following program:

package main

import (
    "fmt"
    "go/format"
)

func main() {
    data := []byte("\ta()\n//line :1")
    data1, err := format.Source(data)
    if err != nil {
        return
    }
    _, err = format.Source(data1)
    if err != nil {
        fmt.Printf("orig: %q\n", data)
        fmt.Printf("new : %q\n", data1)
        panic(err)
    }
}

outputs:

orig: "\ta()\n//line :1"
new : "\ta() }\n\n//line"

} should not be added

go version devel +514014c Thu Jun 18 15:54:35 2015 +0200 linux/amd64

I have a fix (kind of), but it is not pretty. Submitting it for review.

CL https://golang.org/cl/11282 mentions this issue.