Arnaud, $ go version && go run alias.go && go vet alias.go go version devel go1.24-96d8ff00c2 Sat Aug 24 00:51:40 2024 +0000 linux/amd64 b = {X:0xc00011c190 Y:0xc00011c1a0} $
Or $ go1.23 version && go1.23 run alias.go && GODEBUG=gotypesalias=1 go1.23 vet alias.go go version go1.23.0 linux/amd64 b = {X:0xc0000141c0 Y:0xc0000141d0} $ peter On Saturday, August 24, 2024 at 5:37:20 PM UTC-4 Arnaud Delobelle wrote: > Hi all > > I ran into this error with generic types. Here is the sample program > below, which is my best effort to boil it down to its simplest expression. > > I can build and run the program fine with go 1.23.0. However, on line 15 > vscode reports the error I put in the comment on that line. I do not know > how to determine what tool is instructing vscode to report this error (I > imagine it's gopls but I have no proof). > > package main > > import "fmt" > > func main() { > b := B{X: &A1{X: B{}}, Y: &A2{X: B{}}} > fmt.Printf("b = %#v", b) > } > > type A1 struct { > X B > } > > type A2 struct { > X B // invalid use of type alias B in recursive type (see > go.dev/issue/50729)compilerInvalidDeclCycle > } > > type G[T1, T2 any] struct { > X *T1 > Y *T2 > } > > type B = G[A1, A2] > > > Here is the same program in the go playground: > https://go.dev/play/p/fjy9259UHPY. If I click "Run" I get this output: > > # [play] > vet: ./prog.go:15:4: invalid use of type alias B in recursive type (see > go.dev/issue/50729) > Go vet failed. > b = {X:0xc00009e050 Y:0xc00009e060} > Program exited. > > > So "go vet" fails, but the program builds and runs OK. However, if I run > "go vet" on my machine, no errors are reported! > > Can someone explain what is happening? To sum up > - the program builds and runs even though an error is reported in vscode > and the same error by go vet on the Go playground > - go vet reports an error in the Go playground, but not on my machine > (they both reportedly run go 1.23.0) > - possibly gopls reports this error too? I do not know if it is the tool > that tells vscode of the error on my machine (I run gopls 0.16.1) > > What I'd like to know: > - if someone can tell me how to determine what tool is telling vscode to > report this error, it would help me find where to report this issue > - if someone could confirm whether the program is indeed supposed to be > correct, it would also help me (I suspect it should be correct, as it > builds and runs successfully) > > Thanks in advance > > -- > Arnaud > > PS: Apologies for the html-formatted email, but I couldn't figure out how > to paste code into gmail without losing all the indentation > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/3084309c-bac4-4851-ab1f-364568b4400cn%40googlegroups.com.