- 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
https://golang.org/cl/165042
This commit is contained in:
Robert Griesemer 2009-12-03 11:25:20 -08:00
parent c6e316a4b9
commit 6db683fe4d

View File

@ -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++;
}