From 7889ae3b1201c924103ac2941948e9f0c6decb37 Mon Sep 17 00:00:00 2001 From: cui fliter Date: Sat, 5 Aug 2023 15:52:52 +0000 Subject: [PATCH] cmd/compile/internal/base: optimize the readImportCfg function to make it clearer Change-Id: If8fc77d5b04b2979707032d91112d4f33ef5e3da GitHub-Last-Rev: d82d769c04569af8a0c99a0ba9a78db641b97368 GitHub-Pull-Request: golang/go#55913 Reviewed-on: https://go-review.googlesource.com/c/go/+/435536 Reviewed-by: Ian Lance Taylor Reviewed-by: Michael Knyszek Auto-Submit: Ian Lance Taylor Run-TryBot: shuang cui Run-TryBot: Ian Lance Taylor Reviewed-by: qiulaidongfeng <2645477756@qq.com> TryBot-Result: Gopher Robot --- src/cmd/compile/internal/base/flag.go | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/cmd/compile/internal/base/flag.go b/src/cmd/compile/internal/base/flag.go index 753a60ae1e..7bd27c92a3 100644 --- a/src/cmd/compile/internal/base/flag.go +++ b/src/cmd/compile/internal/base/flag.go @@ -470,26 +470,22 @@ func readImportCfg(file string) { continue } - var verb, args string - if i := strings.Index(line, " "); i < 0 { - verb = line - } else { - verb, args = line[:i], strings.TrimSpace(line[i+1:]) - } - var before, after string - if i := strings.Index(args, "="); i >= 0 { - before, after = args[:i], args[i+1:] + verb, args, found := strings.Cut(line, " ") + if found { + args = strings.TrimSpace(args) } + before, after, hasEq := strings.Cut(args, "=") + switch verb { default: log.Fatalf("%s:%d: unknown directive %q", file, lineNum, verb) case "importmap": - if before == "" || after == "" { + if !hasEq || before == "" || after == "" { log.Fatalf(`%s:%d: invalid importmap: syntax is "importmap old=new"`, file, lineNum) } Flag.Cfg.ImportMap[before] = after case "packagefile": - if before == "" || after == "" { + if !hasEq || before == "" || after == "" { log.Fatalf(`%s:%d: invalid packagefile: syntax is "packagefile path=filename"`, file, lineNum) } Flag.Cfg.PackageFile[before] = after -- 2.50.0