summaryrefslogtreecommitdiff
path: root/src/pkg/go/doc/doc.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2009-12-03 11:25:20 -0800
committerRobert Griesemer <gri@golang.org>2009-12-03 11:25:20 -0800
commitb19e5e9ba158f863fcfc4ea9a1b898d53a34a5c2 (patch)
treea32b1fb23e93ac55f117b511d3fff2428482fbe3 /src/pkg/go/doc/doc.go
parent36ce4c427976ae699ee4171f0870894e11c38383 (diff)
downloadgolang-b19e5e9ba158f863fcfc4ea9a1b898d53a34a5c2.tar.gz
- include type-associated consts and vars when filtering a PackageDoc
- fixes a godoc issue (for instance, "godoc os EOF" now shows an entry) R=r CC=rsc http://codereview.appspot.com/165042
Diffstat (limited to 'src/pkg/go/doc/doc.go')
-rw-r--r--src/pkg/go/doc/doc.go16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/pkg/go/doc/doc.go b/src/pkg/go/doc/doc.go
index 6b8cf87c8..b7cc8f3b0 100644
--- a/src/pkg/go/doc/doc.go
+++ b/src/pkg/go/doc/doc.go
@@ -561,8 +561,8 @@ func isRegexp(s string) bool {
}
-func match(s string, a []string) bool {
- for _, t := range a {
+func match(s string, names []string) bool {
+ for _, t := range names {
if isRegexp(t) {
if matched, _ := regexp.MatchString(t, s); matched {
return true
@@ -622,16 +622,18 @@ func filterFuncDocs(a []*FuncDoc, names []string) []*FuncDoc {
func filterTypeDocs(a []*TypeDoc, names []string) []*TypeDoc {
w := 0;
for _, td := range a {
- match := false;
+ n := 0; // number of matches
if matchDecl(td.Decl, names) {
- match = true
+ n = 1
} else {
- // type name doesn't match, but we may have matching factories or methods
+ // type name doesn't match, but we may have matching consts, vars, factories or methods
+ td.Consts = filterValueDocs(td.Consts, names);
+ td.Vars = filterValueDocs(td.Vars, names);
td.Factories = filterFuncDocs(td.Factories, names);
td.Methods = filterFuncDocs(td.Methods, names);
- match = len(td.Factories) > 0 || len(td.Methods) > 0;
+ n += len(td.Consts) + len(td.Vars) + len(td.Factories) + len(td.Methods);
}
- if match {
+ if n > 0 {
a[w] = td;
w++;
}