aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/noder
diff options
context:
space:
mode:
authorWayne Zuo <wdvxdr@golangcn.org>2022-06-16 11:05:39 +0800
committerGopher Robot <gobot@golang.org>2022-06-22 16:25:18 +0000
commit4045b1bc3f97a47274ef1da2bf6d29f5ce1c7b88 (patch)
treeb39c527aae3a431e2c6497adbede0b77a427b57a /src/cmd/compile/internal/noder
parent6bad7e82430bb1eb927a2901f44f9664637db27d (diff)
downloadgo-4045b1bc3f97a47274ef1da2bf6d29f5ce1c7b88.tar.xz
cmd/compile: fix assert condition in generic method call
Fixes #53406. Change-Id: If7ae39ec1042a792d82a0a2de96d168c22d8ab71 Reviewed-on: https://go-review.googlesource.com/c/go/+/412614 Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Alex Rakoczy <alex@golang.org> Auto-Submit: Alex Rakoczy <alex@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Wayne Zuo <wdvxdr@golangcn.org>
Diffstat (limited to 'src/cmd/compile/internal/noder')
-rw-r--r--src/cmd/compile/internal/noder/stencil.go12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/cmd/compile/internal/noder/stencil.go b/src/cmd/compile/internal/noder/stencil.go
index eeb503811c..d463c850f3 100644
--- a/src/cmd/compile/internal/noder/stencil.go
+++ b/src/cmd/compile/internal/noder/stencil.go
@@ -208,9 +208,15 @@ func (g *genInst) scanForGenCalls(decl ir.Node) {
st := g.getInstantiation(gf, targs, true).fun
dictValue, usingSubdict := g.getDictOrSubdict(declInfo, n, gf, targs, true)
- // We have to be using a subdictionary, since this is
- // a generic method call.
- assert(usingSubdict)
+ if hasShapeTypes(targs) {
+ // We have to be using a subdictionary, since this is
+ // a generic method call.
+ assert(usingSubdict)
+ } else {
+ // We should use main dictionary, because the receiver is
+ // an instantiation already, see issue #53406.
+ assert(!usingSubdict)
+ }
// Transform to a function call, by appending the
// dictionary and the receiver to the args.