cmd/doc: don't drop const/var block if first entry is unexported

The code assumed that if the first entry was unexported, all the
entries were. The fix is simple: delete a bunch of code.

Fixes #12286.

Change-Id: Icb09274e99ce97df4d8bddbe59d17a5c0622e4c6
Reviewed-on: https://go-review.googlesource.com/14780
Reviewed-by: Andrew Gerrand <adg@golang.org>
diff --git a/src/cmd/doc/doc_test.go b/src/cmd/doc/doc_test.go
index b97cc76..b3b0f60 100644
--- a/src/cmd/doc/doc_test.go
+++ b/src/cmd/doc/doc_test.go
@@ -54,6 +54,7 @@
 			`Package comment`,
 			`const ExportedConstant = 1`,                            // Simple constant.
 			`const ConstOne = 1`,                                    // First entry in constant block.
+			`const ConstFive ...`,                                   // From block starting with unexported constant.
 			`var ExportedVariable = 1`,                              // Simple variable.
 			`var VarOne = 1`,                                        // First entry in variable block.
 			`func ExportedFunc\(a int\) bool`,                       // Function.
@@ -73,6 +74,7 @@
 			`Comment before VarOne`,             // No comment for first entry in variable block.
 			`ConstTwo = 2`,                      // No second entry in constant block.
 			`VarTwo = 2`,                        // No second entry in variable block.
+			`VarFive = 5`,                       // From block starting with unexported variable.
 			`type unexportedType`,               // No unexported type.
 			`unexportedTypedConstant`,           // No unexported typed constant.
 			`Field`,                             // No fields.
diff --git a/src/cmd/doc/pkg.go b/src/cmd/doc/pkg.go
index daa22e4..3e97fd3 100644
--- a/src/cmd/doc/pkg.go
+++ b/src/cmd/doc/pkg.go
@@ -257,18 +257,7 @@
 // valueSummary prints a one-line summary for each set of values and constants.
 func (pkg *Package) valueSummary(values []*doc.Value) {
 	for _, value := range values {
-		// Only print first item in spec, show ... to stand for the rest.
-		spec := value.Decl.Specs[0].(*ast.ValueSpec) // Must succeed.
-		exported := true
-		for _, name := range spec.Names {
-			if !isExported(name.Name) {
-				exported = false
-				break
-			}
-		}
-		if exported {
-			pkg.oneLineValueGenDecl(value.Decl)
-		}
+		pkg.oneLineValueGenDecl(value.Decl)
 	}
 }
 
diff --git a/src/cmd/doc/testdata/pkg.go b/src/cmd/doc/testdata/pkg.go
index ebefb50..0f06651 100644
--- a/src/cmd/doc/testdata/pkg.go
+++ b/src/cmd/doc/testdata/pkg.go
@@ -21,6 +21,13 @@
 	constThree = 3 // Comment on line with constThree.
 )
 
+// Const block where first entry is unexported.
+const (
+	constFour = iota
+	ConstFive
+	ConstSix
+)
+
 // Variables
 
 // Comment about exported variable.
@@ -37,6 +44,13 @@
 	varThree = 3 // Comment on line with varThree.
 )
 
+// Var block where first entry is unexported.
+var (
+	varFour = 4
+	VarFive = 5
+	varSix  = 6
+)
+
 // Comment about exported function.
 func ExportedFunc(a int) bool