[dev.typeparams] cmd/compile: fix missing condition in usemethod

CL 330670 simplified usemethod, but dropped the previous condition to
ensure the function have 1 or 2 result. This CL restore that condition,
and also add a test for it.

Change-Id: I434e3736785b43ceea0b386d8d9d01ad78a4ccd2
Reviewed-on: https://go-review.googlesource.com/c/go/+/336609
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
Cuong Manh Le 2021-07-22 23:54:19 +07:00
parent 5ba06495c1
commit fca3e5c445
2 changed files with 34 additions and 1 deletions

View file

@ -957,7 +957,14 @@ func usemethod(n *ir.CallExpr) {
if t.NumParams() != 1 || t.Params().Field(0).Type.Kind() != pKind {
return
}
if t.NumResults() == 2 && t.Results().Field(1).Type.Kind() != types.TBOOL {
switch t.NumResults() {
case 1:
// ok
case 2:
if t.Results().Field(1).Type.Kind() != types.TBOOL {
return
}
default:
return
}