go cmd/compile: 在 "if" 语句中出现语法错误时,建议的标记不合适,

ftf50wuq  于 6个月前  发布在  Go
关注(0)|答案(2)|浏览(53)

你正在使用的Go版本是什么( go version )?

$ go version
go version go1.16.5 darwin/amd64

这个问题在最新版本中是否重现?

是的。

你正在使用什么操作系统和处理器架构( go env )?

go env 输出

$ go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/marco/Library/Caches/go-build"
GOENV="/Users/marco/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/marco/go/pkg/mod"
GOOS="darwin"
GOPATH="/Users/marco/go"
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.16.5"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/z9/xrln_qks56jbzxjbhs04fpm80000gn/T/go-build771492184=/tmp/go-build -gno-record-gcc-switches -fno-common"

你做了什么?

编译以下程序

package main

func main() {
	if a := true: a { }
}

你期望看到什么?

syntax error: unexpected :, expecting ;

如果解析了一个SimpleStmt,并且下一个标记不是分号,我希望在错误消息中提示分号。

你看到了什么?

syntax error: unexpected :, expecting {
ttcibm8c

ttcibm8c1#

感谢您的报告。
这种情况在Go 1.14及之前的版本中是否也发生过,还是这是一个较新的回归?

4uqofj5v

4uqofj5v2#

这是否也发生在Go的旧版本中,如1.14及之前,还是这是一个较新的回归?
在旧版本中也发生过,例如在1.13版本中。

相关问题