aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2009-11-09 09:34:55 -0800
committerRobert Griesemer <gri@golang.org>2009-11-09 09:34:55 -0800
commit53f485813e3900c4972337844b44f90f3ebd77d0 (patch)
tree5f2d8f459b0eca5e259dd78d994f3be06f8cb178
parentaae64f8c8134409c99a3e7a90f963e4ca116df7c (diff)
downloadgo-53f485813e3900c4972337844b44f90f3ebd77d0.tar.gz
go-53f485813e3900c4972337844b44f90f3ebd77d0.zip
fix for nodeSize computation, used to determine if
a node fits on one line: - for purposes of measuring the node size in text, don't generate html or use a styler that could generate html as it will lead to overly large sizes A consequence of this bug is that source code displayed with godoc may show functions that fit on one line in the source on multiple lines. This change causes no difference to the gofmt formatting of any files in src or misc. R=rsc http://go/go-review/1026034
-rw-r--r--src/pkg/go/printer/nodes.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/pkg/go/printer/nodes.go b/src/pkg/go/printer/nodes.go
index 1f863c24b3..f91a34851f 100644
--- a/src/pkg/go/printer/nodes.go
+++ b/src/pkg/go/printer/nodes.go
@@ -1090,8 +1090,12 @@ func (p *printer) genDecl(d *ast.GenDecl, context declContext, multiLine *bool)
//
func (p *printer) nodeSize(n ast.Node, maxSize int) (size int) {
size = maxSize+1; // assume n doesn't fit
+ // nodeSize computation must be indendent of particular
+ // style so that we always get the same decision; print
+ // in RawFormat
+ cfg := Config{Mode: RawFormat};
var buf bytes.Buffer;
- if _, err := p.Config.Fprint(&buf, n); err != nil {
+ if _, err := cfg.Fprint(&buf, n); err != nil {
return;
}
if buf.Len() <= maxSize {