diff options
author | Robert Griesemer <gri@golang.org> | 2020-11-19 09:09:15 -0800 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2020-11-19 18:46:33 +0000 |
commit | 0123c9b32165302deb200683b4f855d572a934b6 (patch) | |
tree | ef1c3fce2cac916815edd2f68e86710d03d1e5b4 /src/cmd/compile/internal/types2/expr.go | |
parent | 21400491728520e648d8f1634605ea2b704a8fc2 (diff) | |
download | go-0123c9b32165302deb200683b4f855d572a934b6.tar.gz go-0123c9b32165302deb200683b4f855d572a934b6.zip |
[dev.typeparams] cmd/compile/internal/types2: report an error for invalid constant values
This is https://golang.org/cl/271377 ported to types2.
Updates #42695.
Change-Id: I475bdcaeace5b0e87d4476a6d660996534289666
Reviewed-on: https://go-review.googlesource.com/c/go/+/271520
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/types2/expr.go')
-rw-r--r-- | src/cmd/compile/internal/types2/expr.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/types2/expr.go b/src/cmd/compile/internal/types2/expr.go index 7c07950b01..94649ca4cc 100644 --- a/src/cmd/compile/internal/types2/expr.go +++ b/src/cmd/compile/internal/types2/expr.go @@ -1168,7 +1168,11 @@ func (check *Checker) exprInternal(x *operand, e syntax.Expr, hint Type) exprKin case *syntax.BasicLit: x.setConst(e.Kind, e.Value) if x.mode == invalid { - check.invalidASTf(e, "invalid literal %v", e.Value) + // The parser already establishes syntactic correctness. + // If we reach here it's because of number under-/overflow. + // TODO(gri) setConst (and in turn the go/constant package) + // should return an error describing the issue. + check.errorf(e, "malformed constant: %s", e.Value) goto Error } |