]> Cypherpunks repositories - gostls13.git/commitdiff
fix for nodeSize computation, used to determine if
authorRobert Griesemer <gri@golang.org>
Mon, 9 Nov 2009 17:34:55 +0000 (09:34 -0800)
committerRobert Griesemer <gri@golang.org>
Mon, 9 Nov 2009 17:34:55 +0000 (09:34 -0800)
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

src/pkg/go/printer/nodes.go

index 1f863c24b368ce546f37b5eba06ade47e2b43bd0..f91a34851fbb37e2543dfe7097a3f755448d5cf8 100644 (file)
@@ -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 {