aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2018-08-13 17:25:49 -0700
committerRobert Griesemer <gri@golang.org>2018-08-14 15:57:25 +0000
commitdaeb0b4f538872a37787626816c47afcf71bfd2c (patch)
tree6f5ea922298cf8d44e9d2c86daf91ccef31d95ca
parent81555cb4f3521b53f9de4ce15f64b77cc9df61b9 (diff)
downloadgo-daeb0b4f538872a37787626816c47afcf71bfd2c.tar.gz
go-daeb0b4f538872a37787626816c47afcf71bfd2c.zip
go/printer: revert "make empty lines break table alignment"
This reverts commit c116265eb3f2b1a8549e7ceef73b780439404030. The change, while addressing issue #26352, introduced another regression (#26930), which is worse. Reverting this change in favor of a better fix for the original issue. Updates #26352. Fixes #26930. Change-Id: I71ad12a8212992cce5c1e73907d1f7460f98d9e8 Reviewed-on: https://go-review.googlesource.com/129255 Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-rw-r--r--src/go/printer/nodes.go17
-rw-r--r--src/go/printer/testdata/alignment.golden9
-rw-r--r--src/go/printer/testdata/alignment.input9
3 files changed, 4 insertions, 31 deletions
diff --git a/src/go/printer/nodes.go b/src/go/printer/nodes.go
index 3723f30e56..18f2371d24 100644
--- a/src/go/printer/nodes.go
+++ b/src/go/printer/nodes.go
@@ -221,22 +221,13 @@ func (p *printer) exprList(prev0 token.Pos, list []ast.Expr, depth int, mode exp
// If the previous line and the current line had single-
// line-expressions and the key sizes are small or the
// ratio between the current key and the geometric mean
- // does not exceed a threshold, align columns and do not use
- // formfeed.
- // If the previous line was an empty line, break the alignment.
- // (The text/tabwriter will break alignment after an empty line
- // even if we don't do anything here, but we can't see that; yet
- // we need to reset the variables used in the geomean
- // computation after an alignment break. Do it explicitly
- // instead so we're aware of the break. Was issue #26352.)
+ // if the previous key sizes does not exceed a threshold,
+ // align columns and do not use formfeed.
if prevSize > 0 && size > 0 {
const smallSize = 40
- switch {
- case prevLine+1 < line:
- useFF = true
- case count == 0, prevSize <= smallSize && size <= smallSize:
+ if count == 0 || prevSize <= smallSize && size <= smallSize {
useFF = false
- default:
+ } else {
const r = 2.5 // threshold
geomean := math.Exp(lnsum / float64(count)) // count > 0
ratio := float64(size) / geomean
diff --git a/src/go/printer/testdata/alignment.golden b/src/go/printer/testdata/alignment.golden
index 302b32e766..c65defe6ae 100644
--- a/src/go/printer/testdata/alignment.golden
+++ b/src/go/printer/testdata/alignment.golden
@@ -128,12 +128,3 @@ func main() {
abcdefghijklmnopqrstuvwxyz: "foo",
}
}
-
-// ----------------------------------------------------------------------------
-// Examples from issue #26352.
-var _ = map[int]string{
- 1: "",
-
- 12345678901234567890123456789: "",
- 12345678901234567890123456789012345678: "",
-}
diff --git a/src/go/printer/testdata/alignment.input b/src/go/printer/testdata/alignment.input
index 83361cc7c1..9b0aae6bec 100644
--- a/src/go/printer/testdata/alignment.input
+++ b/src/go/printer/testdata/alignment.input
@@ -128,12 +128,3 @@ func main() {
abcdefghijklmnopqrstuvwxyz: "foo",
}
}
-
-// ----------------------------------------------------------------------------
-// Examples from issue #26352.
-var _ = map[int]string{
- 1: "",
-
- 12345678901234567890123456789: "",
- 12345678901234567890123456789012345678: "",
-}