-
Notifications
You must be signed in to change notification settings - Fork 18k
go/types, types2: infinite recursion if constraint type and type param have same name #50321
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
@griesemer @findleyr Infinite recursion in types2, because of the use of 'Arno' for both the constraint interface type and the name of the type param. Everything builds and runs fine if the type param Arno is renamed to 'T'.
|
Thanks very much for this report! I'm surprised we haven't hit this bug before. I know we've been trying to avoid assigning the release-blocker label for bugs compiling invalid code, but given that this is an infinite recursion I think it is warranted here (and the corresponding bug in go/types would crash tools). Looking now. |
Change https://golang.org/cl/374294 mentions this issue: |
It printed an error before beta: https://groups.google.com/g/golang-nuts/c/Zt0pstrpS50/m/kqejC67FCAAJ |
I don't know whether or not the spec has specified the scope of a type parameter. func Bar[T any](x T) T {
var T = x // T redeclared in this block
return T
}
func Bar2[T any](x T) T {
{
var T = x // okay
return T
}
} |
@go101 the issue here is simply a bug in type checking type parameters that are used as their own constraint, as in the type parameter list Type parameters are scoped to the declaration in which they are defined. The spec is still in-progress and may not reflect this yet. |
As a result of the change to the underlying of a type parameter to be its constraint interface, we had couple inaccuracies that combined to cause an infinite recursion when type checking the invalid type parameter list [A A]. - We deferred tpar.iface() using check.later twice: once in newTypeParam, and then again at the end of collectTypeParams. - We deferred the check that type parameter constraints are not type parameters, even though this is unnecessary: the constraint type is known. With these inaccuracies, tpar.iface() was executing before our guard against using type parameters as constraints, causing an infinite recursion through under(). Fix this by eagerly checking whether the constraint is a type parameter, and marking it invalid if so. Also remove the unnecessary calls to tpar.iface() at the end of collectTypeParams, as this will already have been scheduled by newTypeParam. Fixes golang#50321 Change-Id: I4eecbecf21656615867cb94be65b520e9e795bd1 Reviewed-on: https://go-review.googlesource.com/c/go/+/374294 Reviewed-by: Robert Griesemer <[email protected]> Trust: Robert Findley <[email protected]> Run-TryBot: Robert Findley <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
on Beta
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
What did you expect to see?
print of
or
What did you see instead?
`runtime: goroutine stack exceeds 1000000000-byte limit
runtime: sp=0xc0203e0380 stack=[0xc0203e0000, 0xc0403e0000]
fatal error: stack overflow
runtime stack:
runtime.throw({0xd20d63?, 0x12ea300?})
/usr/local/go/src/runtime/panic.go:992 +0x71
runtime.newstack()
/usr/local/go/src/runtime/stack.go:1101 +0x5cc
runtime.morestack()
/usr/local/go/src/runtime/asm_amd64.s:547 +0x8b
goroutine 1 [running]:
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:23 +0x71 fp=0xc0203e0390 sp=0xc0203e0388 pc=0xb94ab1
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e03e8 sp=0xc0203e0390 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0400 sp=0xc0203e03e8 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0418 sp=0xc0203e0400 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0470 sp=0xc0203e0418 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0488 sp=0xc0203e0470 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e04a0 sp=0xc0203e0488 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e04f8 sp=0xc0203e04a0 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0510 sp=0xc0203e04f8 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0528 sp=0xc0203e0510 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0580 sp=0xc0203e0528 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0598 sp=0xc0203e0580 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e05b0 sp=0xc0203e0598 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0608 sp=0xc0203e05b0 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0620 sp=0xc0203e0608 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0638 sp=0xc0203e0620 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0690 sp=0xc0203e0638 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e06a8 sp=0xc0203e0690 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e06c0 sp=0xc0203e06a8 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0718 sp=0xc0203e06c0 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0730 sp=0xc0203e0718 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0748 sp=0xc0203e0730 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e07a0 sp=0xc0203e0748 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e07b8 sp=0xc0203e07a0 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e07d0 sp=0xc0203e07b8 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0828 sp=0xc0203e07d0 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0840 sp=0xc0203e0828 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0858 sp=0xc0203e0840 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e08b0 sp=0xc0203e0858 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e08c8 sp=0xc0203e08b0 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e08e0 sp=0xc0203e08c8 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0938 sp=0xc0203e08e0 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0950 sp=0xc0203e0938 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0968 sp=0xc0203e0950 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e09c0 sp=0xc0203e0968 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e09d8 sp=0xc0203e09c0 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e09f0 sp=0xc0203e09d8 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0a48 sp=0xc0203e09f0 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0a60 sp=0xc0203e0a48 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0a78 sp=0xc0203e0a60 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0ad0 sp=0xc0203e0a78 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0ae8 sp=0xc0203e0ad0 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0b00 sp=0xc0203e0ae8 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0b58 sp=0xc0203e0b00 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0b70 sp=0xc0203e0b58 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0b88 sp=0xc0203e0b70 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0be0 sp=0xc0203e0b88 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0bf8 sp=0xc0203e0be0 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0c10 sp=0xc0203e0bf8 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0c68 sp=0xc0203e0c10 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0c80 sp=0xc0203e0c68 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0c98 sp=0xc0203e0c80 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0cf0 sp=0xc0203e0c98 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0d08 sp=0xc0203e0cf0 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0d20 sp=0xc0203e0d08 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0d78 sp=0xc0203e0d20 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0d90 sp=0xc0203e0d78 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0da8 sp=0xc0203e0d90 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0e00 sp=0xc0203e0da8 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0e18 sp=0xc0203e0e00 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0e30 sp=0xc0203e0e18 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0e88 sp=0xc0203e0e30 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0ea0 sp=0xc0203e0e88 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0eb8 sp=0xc0203e0ea0 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0f10 sp=0xc0203e0eb8 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0f28 sp=0xc0203e0f10 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0f40 sp=0xc0203e0f28 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e0f98 sp=0xc0203e0f40 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e0fb0 sp=0xc0203e0f98 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e0fc8 sp=0xc0203e0fb0 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e1020 sp=0xc0203e0fc8 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e1038 sp=0xc0203e1020 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e1050 sp=0xc0203e1038 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e10a8 sp=0xc0203e1050 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e10c0 sp=0xc0203e10a8 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e10d8 sp=0xc0203e10c0 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e1130 sp=0xc0203e10d8 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e1148 sp=0xc0203e1130 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e1160 sp=0xc0203e1148 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e11b8 sp=0xc0203e1160 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e11d0 sp=0xc0203e11b8 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e11e8 sp=0xc0203e11d0 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e1240 sp=0xc0203e11e8 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e1258 sp=0xc0203e1240 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e1270 sp=0xc0203e1258 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e12c8 sp=0xc0203e1270 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e12e0 sp=0xc0203e12c8 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e12f8 sp=0xc0203e12e0 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e1350 sp=0xc0203e12f8 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e1368 sp=0xc0203e1350 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e1380 sp=0xc0203e1368 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e13d8 sp=0xc0203e1380 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e13f0 sp=0xc0203e13d8 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e1408 sp=0xc0203e13f0 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e1460 sp=0xc0203e1408 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e1478 sp=0xc0203e1460 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e1490 sp=0xc0203e1478 pc=0xb94a98
cmd/compile/internal/types2.(*TypeParam).iface(0xc00038d9b0)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:104 +0x37 fp=0xc0203e14e8 sp=0xc0203e1490 pc=0xb956d7
cmd/compile/internal/types2.(*TypeParam).Underlying(0x0?)
/usr/local/go/src/cmd/compile/internal/types2/typeparam.go:88 +0x19 fp=0xc0203e1500 sp=0xc0203e14e8 pc=0xb95619
cmd/compile/internal/types2.under({0xe8d760?, 0xc00038d9b0?})
/usr/local/go/src/cmd/compile/internal/types2/type.go:27 +0x58 fp=0xc0203e1518 sp=0xc0203e1500 pc=0xb94a98
...additional frames elided...
Go build failed.`
The text was updated successfully, but these errors were encountered: