From 99ea5b9765dc79e8d8f7e37bd55d6ab949eb739c Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Thu, 24 Aug 2023 16:17:44 -0700 Subject: [PATCH] cmd/compile: remove ErrorfVers and base.Flag.Lang hack ErrorfVers used to be used by typecheck to report when new language functionality was used, but the -lang flag (from go.mod) was set to an older version. However, all of the callers have been since removed, now that this is handled by types2. And for the same reason, we can stop changing base.Flag.Lang. This was previously a workaround so that the unified frontend could generate arbitrary IR without upsetting typecheck, at a time when typecheck was itself a real frontend. Now it's just a glorified desugaring pass. Change-Id: I1c0316dbfe2e08ba089acd50fdfe20b17176be25 Reviewed-on: https://go-review.googlesource.com/c/go/+/522877 Run-TryBot: Matthew Dempsky Auto-Submit: Matthew Dempsky Reviewed-by: Cuong Manh Le Reviewed-by: Keith Randall TryBot-Result: Gopher Robot --- src/cmd/compile/internal/base/print.go | 5 ----- src/cmd/compile/internal/noder/unified.go | 9 --------- 2 files changed, 14 deletions(-) diff --git a/src/cmd/compile/internal/base/print.go b/src/cmd/compile/internal/base/print.go index efd70f7cc5..cc36acec4b 100644 --- a/src/cmd/compile/internal/base/print.go +++ b/src/cmd/compile/internal/base/print.go @@ -146,11 +146,6 @@ func ErrorfAt(pos src.XPos, code errors.Code, format string, args ...interface{} } } -// ErrorfVers reports that a language feature (format, args) requires a later version of Go. -func ErrorfVers(lang string, format string, args ...interface{}) { - Errorf("%s requires %s or later (-lang was set to %s; check go.mod)", fmt.Sprintf(format, args...), lang, Flag.Lang) -} - // UpdateErrorDot is a clumsy hack that rewrites the last error, // if it was "LINE: undefined: NAME", to be "LINE: undefined: NAME in EXPR". // It is used to give better error messages for dot (selector) expressions. diff --git a/src/cmd/compile/internal/noder/unified.go b/src/cmd/compile/internal/noder/unified.go index e534f0b725..59a3536000 100644 --- a/src/cmd/compile/internal/noder/unified.go +++ b/src/cmd/compile/internal/noder/unified.go @@ -5,8 +5,6 @@ package noder import ( - "fmt" - "internal/goversion" "internal/pkgbits" "io" "runtime" @@ -74,13 +72,6 @@ func unified(m posMap, noders []*noder) { data := writePkgStub(m, noders) - // We already passed base.Flag.Lang to types2 to handle validating - // the user's source code. Bump it up now to the current version and - // re-parse, so typecheck doesn't complain if we construct IR that - // utilizes newer Go features. - base.Flag.Lang = fmt.Sprintf("go1.%d", goversion.Version) - types.ParseLangFlag() - target := typecheck.Target localPkgReader = newPkgReader(pkgbits.NewPkgDecoder(types.LocalPkg.Path, data)) -- 2.50.0