mirror of
https://github.com/golang/go
synced 2024-11-05 14:56:10 -07:00
x/tools/cmd/bundle: include comments inside functions
Fixes golang/go#20548 Change-Id: Ieff2323b63308cbc052a2883237520620965cf86 Reviewed-on: https://go-review.googlesource.com/45117 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
b9ad13c5e8
commit
e493388965
1
cmd/bundle/.gitignore
vendored
Normal file
1
cmd/bundle/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
testdata/out.got
|
@ -88,6 +88,7 @@ import (
|
|||||||
"go/build"
|
"go/build"
|
||||||
"go/format"
|
"go/format"
|
||||||
"go/parser"
|
"go/parser"
|
||||||
|
"go/printer"
|
||||||
"go/token"
|
"go/token"
|
||||||
"go/types"
|
"go/types"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
@ -348,18 +349,13 @@ func bundle(src, dst, dstpkg, prefix string) ([]byte, error) {
|
|||||||
|
|
||||||
// Pretty-print package-level declarations.
|
// Pretty-print package-level declarations.
|
||||||
// but no package or import declarations.
|
// but no package or import declarations.
|
||||||
//
|
|
||||||
// TODO(adonovan): this may cause loss of comments
|
|
||||||
// preceding or associated with the package or import
|
|
||||||
// declarations or not associated with any declaration.
|
|
||||||
// Check.
|
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
for _, decl := range f.Decls {
|
for _, decl := range f.Decls {
|
||||||
if decl, ok := decl.(*ast.GenDecl); ok && decl.Tok == token.IMPORT {
|
if decl, ok := decl.(*ast.GenDecl); ok && decl.Tok == token.IMPORT {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
buf.Reset()
|
buf.Reset()
|
||||||
format.Node(&buf, lprog.Fset, decl)
|
format.Node(&buf, lprog.Fset, &printer.CommentedNode{Node: decl, Comments: f.Comments})
|
||||||
// Remove each "@@@." in the output.
|
// Remove each "@@@." in the output.
|
||||||
// TODO(adonovan): not hygienic.
|
// TODO(adonovan): not hygienic.
|
||||||
out.Write(bytes.Replace(buf.Bytes(), []byte("@@@."), nil, -1))
|
out.Write(bytes.Replace(buf.Bytes(), []byte("@@@."), nil, -1))
|
||||||
|
4
cmd/bundle/testdata/out.golden
vendored
4
cmd/bundle/testdata/out.golden
vendored
@ -26,7 +26,9 @@ type prefixS struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Function bar.
|
// Function bar.
|
||||||
func prefixbar(s *prefixS) { fmt.Println(s.prefixt, s.u) }
|
func prefixbar(s *prefixS) {
|
||||||
|
fmt.Println(s.prefixt, s.u) // comment inside function
|
||||||
|
}
|
||||||
|
|
||||||
type prefixt int
|
type prefixt int
|
||||||
|
|
||||||
|
4
cmd/bundle/testdata/src/initial/a.go
vendored
4
cmd/bundle/testdata/src/initial/a.go
vendored
@ -12,4 +12,6 @@ type S struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Function bar.
|
// Function bar.
|
||||||
func bar(s *S) { fmt.Println(s.t, s.u) }
|
func bar(s *S) {
|
||||||
|
fmt.Println(s.t, s.u) // comment inside function
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user