aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/noder
diff options
context:
space:
mode:
authorCuong Manh Le <cuong.manhle.vn@gmail.com>2023-12-01 00:16:24 +0700
committerGopher Robot <gobot@golang.org>2023-12-01 17:20:08 +0000
commitfbfe62bc802d27539a858afd66ae335ff94b1d25 (patch)
tree50fba20f0a404a763f676459c4e14ba6a1b9452e /src/cmd/compile/internal/noder
parent446a5dcf5a3230ce9832682d8f521071d8a34a2b (diff)
downloadgo-fbfe62bc802d27539a858afd66ae335ff94b1d25.tar.xz
cmd/compile: fix typecheck range over rune literal
With range over int, the rune literal in range expression will be left as untyped rune, but idealType is not handling this case, causing ICE. Fixing this by setting the concrete type for untyped rune expresison. Fixes #64471 Change-Id: I07a151c54ea1d9e1b92e4d96cdfb6e73dca13862 Reviewed-on: https://go-review.googlesource.com/c/go/+/546296 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'src/cmd/compile/internal/noder')
-rw-r--r--src/cmd/compile/internal/noder/helpers.go2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/noder/helpers.go b/src/cmd/compile/internal/noder/helpers.go
index 1f7b497599..f9e3838fd9 100644
--- a/src/cmd/compile/internal/noder/helpers.go
+++ b/src/cmd/compile/internal/noder/helpers.go
@@ -99,6 +99,8 @@ func idealType(tv syntax.TypeAndValue) types2.Type {
typ = types2.Typ[types2.Bool] // expression in "if" or "for" condition
case types2.UntypedString:
typ = types2.Typ[types2.String] // argument to "append" or "copy" calls
+ case types2.UntypedRune:
+ typ = types2.Typ[types2.Int32] // range over rune
default:
return nil
}