-
Notifications
You must be signed in to change notification settings - Fork 18.3k
Closed
Labels
FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.The path to resolution is known, but the work has not been done.genericsIssue is related to genericsIssue is related to genericsrelease-blocker
Milestone
Description
What version of Go are you using (go version
)?
$ go version go version go1.18rc1 darwin/arm64
Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env
)?
go env
Output
$ go env GO111MODULE="" GOARCH="arm64" GOBIN="" GOCACHE="/Users/jb/Library/Caches/go-build" GOENV="/Users/jb/Library/Application Support/go/env" GOEXE="" GOEXPERIMENT="" GOFLAGS="" GOHOSTARCH="arm64" GOHOSTOS="darwin" GOINSECURE="" GOMODCACHE="/Users/jb/go/pkg/mod" GONOPROXY="" GONOSUMDB="" GOOS="darwin" GOPATH="/Users/jb/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/opt/homebrew/Cellar/go/1.18rc1/libexec" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/opt/homebrew/Cellar/go/1.18rc1/libexec/pkg/tool/darwin_arm64" GOVCS="" GOVERSION="go1.18rc1" GCCGO="gccgo" AR="ar" CC="clang" CXX="clang++" CGO_ENABLED="1" GOMOD="/Users/jb/code/golang-set/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 arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/qv/ll7pql3n7dbf5w8rf46bcttm0000gn/T/go-build4282451061=/tmp/go-build -gno-record-gcc-switches -fno-common"
What did you do?
https://go.dev/play/p/jML-W5X8dks?v=gotip
What did you expect to see?
Program exited.
(no error)
What did you see instead?
./prog.go:16:17: any does not implement comparable
Go build failed.
Alternatively, using comparable
rather than any
, this error:
./prog.go:16:20: interface is (or embeds) comparable
Go build failed.
Ref: #50646 (comment)
I understand that this seems to be intended, but I think it's going to make it practically quite difficult for developers to use generics in Go - as far as I can tell, there is simply no way to make this work
I think this should be reconsidered, or at least discussed more widely - as it does not seem to be specified in the proposal
This seems significant enough to be considered as a release blocker
A library which is affected in practice: deckarep/golang-set#79 (using its generics
branch) - I have been trying to find workarounds to allow for this new behaviour, but have not managed to resolve it
D1CED, mauricebaruk and knusbaum
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.The path to resolution is known, but the work has not been done.genericsIssue is related to genericsIssue is related to genericsrelease-blocker