x/tools/cmd/godoc: 方法表达式类型可能被误识别

ztmd8pv5  于 4个月前  发布在  Go
关注(0)|答案(3)|浏览(56)

你正在使用的Go版本是什么( go version )?

$ go version
go version devel +739bf6b929 Fri Sep 27 21:17:15 2019 +0000 darwin/amd64

# golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e

这个问题在最新版本中是否会重现?

是的

你正在使用什么操作系统和处理器架构( go env )?

darwin/amd64

你做了什么?

检查了https://tip.golang.org/pkg/net/http/#DefaultTransport定义下的DefaultTransport包变量生成的链接。注意到Transport的DialContext字段的值是一个引用net.Dialer.DialContext的方法表达式,但生成的链接指向一个不存在的http.DialContext函数,导致了一个断裂的链接。

<pre>var <span id="DefaultTransport">DefaultTransport</span> <a href="#RoundTripper">RoundTripper</a> = &amp;<a href="#Transport">Transport</a>{
    <a href="#Transport.Proxy">Proxy</a>: <a href="#ProxyFromEnvironment">ProxyFromEnvironment</a>,
    <a href="#Transport.DialContext">DialContext</a>: (&amp;<a href="/pkg/net/">net</a>.<a href="/pkg/net/#Dialer">Dialer</a>{
        <a href="/pkg/net/#Dialer.Timeout">Timeout</a>:   30 * <a href="/pkg/time/">time</a>.<a href="/pkg/time/#Second">Second</a>,
        <a href="/pkg/net/#Dialer.KeepAlive">KeepAlive</a>: 30 * <a href="/pkg/time/">time</a>.<a href="/pkg/time/#Second">Second</a>,
        <a href="/pkg/net/#Dialer.DualStack">DualStack</a>: <a href="/pkg/builtin/#true">true</a>,
    }).<a href="#DialContext">DialContext</a>,
    <a href="#Transport.ForceAttemptHTTP2">ForceAttemptHTTP2</a>:     <a href="/pkg/builtin/#true">true</a>,
    <a href="#Transport.MaxIdleConns">MaxIdleConns</a>:          100,
    <a href="#Transport.IdleConnTimeout">IdleConnTimeout</a>:       90 * <a href="/pkg/time/">time</a>.<a href="/pkg/time/#Second">Second</a>,
    <a href="#Transport.TLSHandshakeTimeout">TLSHandshakeTimeout</a>:   10 * <a href="/pkg/time/">time</a>.<a href="/pkg/time/#Second">Second</a>,
    <a href="#Transport.ExpectContinueTimeout">ExpectContinueTimeout</a>: 1 * <a href="/pkg/time/">time</a>.<a href="/pkg/time/#Second">Second</a>,
}</pre>

你期望看到什么?

<a href="/pkg/net/#Dialer.DialContext">DialContext</a>

你实际上看到了什么?

<a href="#DialContext">DialContext</a>

tyky79it

tyky79it1#

对于感兴趣的人,相关代码位于godoc/linkify.go。

nwo49xxi

nwo49xxi2#

感谢agnivade提供的#9613链接,我原以为这可能是一个重复的问题,但在搜索DialContext时没有找到它。

k5hmc34c

k5hmc34c3#

https://golang.org/cl/204578提到了这个问题:godoc: fix malformed links in variable definitions

相关问题