aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/types2/expr.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2020-11-19 09:09:15 -0800
committerRobert Griesemer <gri@golang.org>2020-11-19 18:46:33 +0000
commit0123c9b32165302deb200683b4f855d572a934b6 (patch)
treeef1c3fce2cac916815edd2f68e86710d03d1e5b4 /src/cmd/compile/internal/types2/expr.go
parent21400491728520e648d8f1634605ea2b704a8fc2 (diff)
downloadgo-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.go6
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
}