1
0
mirror of https://github.com/golang/go synced 2024-11-16 20:54:48 -07:00

cmd/compile/internal/types2: fix incorrect result type of Checker.index

While at it, add missing "invalid argument: " prefix
to a couple of local error messages, for consistency.

For #45667.

Change-Id: I814800b2f3f3750583e335c98a3f8e27030a9daa
Reviewed-on: https://go-review.googlesource.com/c/go/+/312309
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
Robert Griesemer 2021-04-21 09:04:00 -07:00
parent f9e2dbbfc9
commit b8a359d984

View File

@ -349,15 +349,15 @@ func (check *Checker) index(index syntax.Expr, max int64) (typ Type, val int64)
v, valid := constant.Int64Val(constant.ToInt(x.val)) v, valid := constant.Int64Val(constant.ToInt(x.val))
if !valid || max >= 0 && v >= max { if !valid || max >= 0 && v >= max {
if check.conf.CompilerErrorMessages { if check.conf.CompilerErrorMessages {
check.errorf(&x, "array index %s out of bounds [0:%d]", x.val.String(), max) check.errorf(&x, invalidArg+"array index %s out of bounds [0:%d]", x.val.String(), max)
} else { } else {
check.errorf(&x, "index %s is out of bounds", &x) check.errorf(&x, invalidArg+"index %s is out of bounds", &x)
} }
return return
} }
// 0 <= v [ && v < max ] // 0 <= v [ && v < max ]
return Typ[Int], v return x.typ, v
} }
// indexElts checks the elements (elts) of an array or slice composite literal // indexElts checks the elements (elts) of an array or slice composite literal