godoc: update struct field anchor code
Now without regexps and allocations.
And also match comments like:
// Foo, if non-nil, ...
The comma confused the old pattern.
Updates golang/go#16753
Change-Id: I9016ee7b5933ea343950a39989952804c74a598b
Reviewed-on: https://go-review.googlesource.com/33755
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Chris Broadfoot <cbro@golang.org>
diff --git a/godoc/godoc_test.go b/godoc/godoc_test.go
index ce57d99..51d41b3 100644
--- a/godoc/godoc_test.go
+++ b/godoc/godoc_test.go
@@ -130,10 +130,13 @@
package foo
type T struct {
- NoDoc string
+ NoDoc string
- // Doc has a comment.
- Doc string
+ // Doc has a comment.
+ Doc string
+
+ // Opt, if non-nil, is an option.
+ Opt *int
}
`)
fset := token.NewFileSet()
@@ -147,12 +150,15 @@
}
got := p.node_htmlFunc(pi, genDecl, true)
want := `type T struct {
-<span id="T.NoDoc">NoDoc</span> <a href="/pkg/builtin/#string">string</a>
+<span id="T.NoDoc"></span>NoDoc <a href="/pkg/builtin/#string">string</a>
-<span class="comment"><span id="T.Doc">// Doc </span>has a comment.</span>
+<span id="T.Doc"></span><span class="comment">// Doc has a comment.</span>
Doc <a href="/pkg/builtin/#string">string</a>
+
+<span id="T.Opt"></span><span class="comment">// Opt, if non-nil, is an option.</span>
+Opt *<a href="/pkg/builtin/#int">int</a>
}`
if got != want {
- t.Errorf(" got: %q\nwant: %q\n", got, want)
+ t.Errorf("got: %s\n\nwant: %s\n", got, want)
}
}