x/tools/cmd/godoc: 泛型:类型参数链接错误

toe95027  于 2个月前  发布在  Go
关注(0)|答案(1)|浏览(88)

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

$ go version

go version go1.18beta1 darwin/amd64

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

是的

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

go env 输出

$ go env

GO111MODULE=""

GOARCH="amd64"

GOBIN=""

GOCACHE="/Users/olenasynenka/Library/Caches/go-build"

GOENV="/Users/olenasynenka/Library/Application Support/go/env"

GOEXE=""

GOEXPERIMENT=""

GOFLAGS=""

GOHOSTARCH="amd64"

GOHOSTOS="darwin"

GOINSECURE=""

GOMODCACHE="/Users/olenasynenka/go/pkg/mod"

GONOPROXY=""

GONOSUMDB=""

GOOS="darwin"

GOPATH="/Users/olenasynenka/go"

GOPRIVATE=""

GOPROXY=" [https://proxy.golang.org,direct](https://proxy.golang.org,direct) "

GOROOT="/Users/olenasynenka/sdk/go1.18beta1"

GOSUMDB="sum.golang.org"

GOTMPDIR=""

GOTOOLDIR="/Users/olenasynenka/sdk/go1.18beta1/pkg/tool/darwin_amd64"

GOVCS=""

GOVERSION="go1.18beta1"

GCCGO="gccgo"

GOAMD64="v1"

AR="ar"

CC="clang"

CXX="clang++"

CGO_ENABLED="1"

GOMOD="/Users/olenasynenka/go/src/generics/go.mod"

GOWORK=""

CGO_CFLAGS="-g -O2"

CGO_CPPFLAGS=""

CGO_CXXFLAGS="-g -O2"

CGO_FFLAGS="-g -O2"

CGO_LDFLAGS="-g -O2"

PKG_CONFIG="pkg-config"

GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/f8/xmg0swjx04jfwc7zln05fxlh0000gn/T/go-build495723722=/tmp/go-build -gno-record-gcc-switches -fno-common"

你做了什么?

我创建了一个带有类型参数“T”的通用函数F,并有一个单独的结构体叫做“T”。然后我运行cmd/godoc来查看它的文档。
重现问题的步骤:

mkdir /tmp/test
cd /tmp/test
go mod init test
echo 'package test; func F[T any](t T) {}; type T struct{}' > test.go
go install golang.org/x/tools/cmd/godoc@latest
godoc
# In browser navigate to localhost:6060/pkg/test

你期望看到什么?

应该能看到带有类型参数“T”的通用函数F的文档。类型“T”没有链接到任何地方。

你实际上看到了什么?

类型参数“T”被渲染成一个超链接,指向错误的类型(结构体"T")。这不应该发生,因为结构体“T”和类型参数“T”是不同的实体。

oxiaedzo

oxiaedzo1#

https://golang.org/cl/382714提到了这个问题:godoc: handle type parameters correctly in LinkifyText

相关问题