From f6a163177f858c7158ddca55671f1cd0782b9221 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 10 Dec 2018 19:35:01 -0800 Subject: [PATCH] cmd/cover: simplify and correct isValidIdentifier Per comment on CL 120316. Updates #25280 Change-Id: I7d078de4030bd10934468e04ff696a34749bd454 Reviewed-on: https://go-review.googlesource.com/c/153500 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick Reviewed-by: Rob Pike --- src/cmd/cover/cover.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/cmd/cover/cover.go b/src/cmd/cover/cover.go index 7f473a233c..425bcbdd26 100644 --- a/src/cmd/cover/cover.go +++ b/src/cmd/cover/cover.go @@ -118,7 +118,7 @@ func parseFlags() error { } if *varVar != "" && !isValidIdentifier(*varVar) { - return fmt.Errorf("argument of -var is not a valid identifier: %v", *varVar) + return fmt.Errorf("-var: %q is not a valid identifier", *varVar) } if *mode != "" { @@ -683,12 +683,17 @@ func (f *File) addVariables(w io.Writer) { } func isValidIdentifier(ident string) bool { - first := true - for _, c := range ident { - if !unicode.IsLetter(c) && c != '_' && (first || !unicode.IsDigit(c)) { - return false // invalid identifier + if len(ident) == 0 { + return false + } + for i, c := range ident { + if i > 0 && unicode.IsDigit(c) { + continue + } + if c == '_' || unicode.IsLetter(c) { + continue } - first = false + return false } return true } -- 2.50.0