aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/types2/operand.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2021-01-27 17:03:00 -0800
committerRobert Griesemer <gri@golang.org>2021-01-28 16:30:00 +0000
commitc0bf904ddf89b549a4a9d91a634fea1422744c33 (patch)
treef4bef08cb2d3a1d88a6edab01d6c723a23f857f7 /src/cmd/compile/internal/types2/operand.go
parentf7d1c5990b9aed6a402c3cbdae6f43638172918d (diff)
downloadgo-c0bf904ddf89b549a4a9d91a634fea1422744c33.tar.gz
go-c0bf904ddf89b549a4a9d91a634fea1422744c33.zip
[dev.typeparams] cmd/compile/internal/types2: translate syntax to token constants via tables
This makes the respective files match the respective go/types files a tad more. Change-Id: Ie555e18ed23c493379a1e56b96276867190106f0 Reviewed-on: https://go-review.googlesource.com/c/go/+/287492 Trust: Robert Griesemer <gri@golang.org> Reviewed-by: Robert Findley <rfindley@google.com>
Diffstat (limited to 'src/cmd/compile/internal/types2/operand.go')
-rw-r--r--src/cmd/compile/internal/types2/operand.go17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/cmd/compile/internal/types2/operand.go b/src/cmd/compile/internal/types2/operand.go
index a14120c2c9..dcd29fbce0 100644
--- a/src/cmd/compile/internal/types2/operand.go
+++ b/src/cmd/compile/internal/types2/operand.go
@@ -206,29 +206,23 @@ func (x *operand) String() string {
// setConst sets x to the untyped constant for literal lit.
func (x *operand) setConst(k syntax.LitKind, lit string) {
- var tok token.Token
var kind BasicKind
switch k {
case syntax.IntLit:
- tok = token.INT
kind = UntypedInt
case syntax.FloatLit:
- tok = token.FLOAT
kind = UntypedFloat
case syntax.ImagLit:
- tok = token.IMAG
kind = UntypedComplex
case syntax.RuneLit:
- tok = token.CHAR
kind = UntypedRune
case syntax.StringLit:
- tok = token.STRING
kind = UntypedString
default:
unreachable()
}
- val := constant.MakeFromLiteral(lit, tok, 0)
+ val := constant.MakeFromLiteral(lit, kind2tok[k], 0)
if val.Kind() == constant.Unknown {
x.mode = invalid
x.typ = Typ[Invalid]
@@ -334,3 +328,12 @@ func (x *operand) assignableTo(check *Checker, T Type, reason *string) bool {
return false
}
+
+// kind2tok translates syntax.LitKinds into token.Tokens.
+var kind2tok = [...]token.Token{
+ syntax.IntLit: token.INT,
+ syntax.FloatLit: token.FLOAT,
+ syntax.ImagLit: token.IMAG,
+ syntax.RuneLit: token.CHAR,
+ syntax.StringLit: token.STRING,
+}