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 <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
diff --git a/src/cmd/cover/cover.go b/src/cmd/cover/cover.go
index 7f473a2..425bcbd 100644
--- a/src/cmd/cover/cover.go
+++ b/src/cmd/cover/cover.go
@@ -118,7 +118,7 @@
}
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 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
}
- first = false
+ if c == '_' || unicode.IsLetter(c) {
+ continue
+ }
+ return false
}
return true
}