-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Closed
Closed
Copy link
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.
Milestone
Description
What version of Go are you using (go version
)?
$ go version go version devel go1.18-6df0957060 Mon Jan 10 04:23:42 2022 +0000 darwin/amd64
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
What did you do?
After updated to latest tip commit, my package failed to compile:
It seems due to this commit 931e84a
I have made a reproduce demo based on #50121 and 5b9207f
-- go.mod --
module test
-- pkg/pkg.go --
package pkg
type Builder[T any] struct{}
func (r Builder[T]) New() T {
var v T
return v
}
func (r Builder[T]) New2() T {
return r.New()
}
func BuildInt() int {
return Builder[int]{}.New()
}
-- main.go --
package main
import (
"fmt"
"test/pkg"
)
func BuildInt() int {
return pkg.BuildInt()
}
func main() {
fmt.Println(BuildInt())
}
the difference with #50121 is the func (r Builder[T]) New2() T
method.
and the error logs is here:
# test
panic: interface conversion: types.Object is nil, not *ir.Name
goroutine 1 [running]:
cmd/compile/internal/typecheck.(*crawler).markInlBody.func1({0x1a8fee0, 0xc0000b4300?})
/usr/local/Cellar/gotip/src/cmd/compile/internal/typecheck/crawler.go:257 +0x60e
cmd/compile/internal/ir.Visit.func1({0x1a8fee0, 0xc0000b4300})
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:105 +0x30
cmd/compile/internal/ir.doNodes(...)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/node_gen.go:1512
cmd/compile/internal/ir.(*CallExpr).doChildren(0xc0000a0a20, 0xc00011bec0)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/node_gen.go:263 +0x132
cmd/compile/internal/ir.DoChildren(...)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:94
cmd/compile/internal/ir.Visit.func1({0x1a8faf8, 0xc0000a0a20})
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:106 +0x57
cmd/compile/internal/ir.doNodes(...)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/node_gen.go:1512
cmd/compile/internal/ir.(*ReturnStmt).doChildren(0x1a91650?, 0xc00011bec0)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/node_gen.go:1049 +0x8c
cmd/compile/internal/ir.DoChildren(...)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:94
cmd/compile/internal/ir.Visit.func1({0x1a91650, 0xc000092f00})
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:106 +0x57
cmd/compile/internal/ir.Visit({0x1a91650, 0xc000092f00}, 0xc00011bea8)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:108 +0xb8
cmd/compile/internal/ir.VisitList(...)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:114
cmd/compile/internal/typecheck.(*crawler).markInlBody(0xc00011be60, 0x1886720?)
/usr/local/Cellar/gotip/src/cmd/compile/internal/typecheck/crawler.go:327 +0x2f4
cmd/compile/internal/typecheck.(*crawler).markInlBody.func1({0x1a910d8, 0xc000455790?})
/usr/local/Cellar/gotip/src/cmd/compile/internal/typecheck/crawler.go:305 +0x225
cmd/compile/internal/ir.Visit.func1({0x1a910d8, 0xc000455790})
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:105 +0x30
cmd/compile/internal/ir.(*CallExpr).doChildren(0xc000390ea0, 0xc00011be90)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/node_gen.go:260 +0x56
cmd/compile/internal/ir.DoChildren(...)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:94
cmd/compile/internal/ir.Visit.func1({0x1a8faf8, 0xc000390ea0})
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:106 +0x57
cmd/compile/internal/ir.doNodes(...)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/node_gen.go:1512
cmd/compile/internal/ir.(*ReturnStmt).doChildren(0x1a91650?, 0xc00011be90)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/node_gen.go:1049 +0x8c
cmd/compile/internal/ir.DoChildren(...)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:94
cmd/compile/internal/ir.Visit.func1({0x1a91650, 0xc0004764b0})
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:106 +0x57
cmd/compile/internal/ir.Visit({0x1a91650, 0xc0004764b0}, 0xc00011be78)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:108 +0xb8
cmd/compile/internal/ir.VisitList(...)
/usr/local/Cellar/gotip/src/cmd/compile/internal/ir/visit.go:114
cmd/compile/internal/typecheck.(*crawler).markInlBody(0xc00011be60, 0x18c5f20?)
/usr/local/Cellar/gotip/src/cmd/compile/internal/typecheck/crawler.go:327 +0x2f4
cmd/compile/internal/typecheck.(*crawler).markObject(0x10cd89e?, 0xc000455450)
/usr/local/Cellar/gotip/src/cmd/compile/internal/typecheck/crawler.go:50 +0x2f
cmd/compile/internal/typecheck.crawlExports({0xc00008d7a0, 0x2, 0x10d1d2c?})
/usr/local/Cellar/gotip/src/cmd/compile/internal/typecheck/crawler.go:37 +0xbf
cmd/compile/internal/typecheck.WriteExports({0x1a89fa0, 0xc0005cb740}, 0x1)
/usr/local/Cellar/gotip/src/cmd/compile/internal/typecheck/iexport.go:305 +0x65
cmd/compile/internal/noder.WriteExports(0xc0005d4590)
/usr/local/Cellar/gotip/src/cmd/compile/internal/noder/export.go:40 +0x7a
cmd/compile/internal/gc.dumpCompilerObj(0xc0005d4590?)
/usr/local/Cellar/gotip/src/cmd/compile/internal/gc/obj.go:107 +0x28
cmd/compile/internal/gc.dumpobj1({0x7ffeefbff239, 0x50}, 0x3)
/usr/local/Cellar/gotip/src/cmd/compile/internal/gc/obj.go:63 +0x17b
cmd/compile/internal/gc.dumpobj()
/usr/local/Cellar/gotip/src/cmd/compile/internal/gc/obj.go:44 +0x36
cmd/compile/internal/gc.Main(0x1948e30)
/usr/local/Cellar/gotip/src/cmd/compile/internal/gc/main.go:330 +0x11bc
main.main()
/usr/local/Cellar/gotip/src/cmd/compile/main.go:55 +0xdd
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.