tryResolve is an extremely hot method on the parser. Eliminating this
formatting led to a 20% performance improvement in BenchmarkParse.
Change-Id: Idf8850404bd72d45d1351356427a85086422ea68
Reviewed-on: https://go-review.googlesource.com/c/go/+/302629
Trust: Robert Findley <rfindley@google.com>
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
if ident == nil {
return
}
- assert(ident.Obj == nil, fmt.Sprintf("identifier %s already declared or resolved", ident.Name))
+ // Don't use assert here, to avoid needless formatting of the message below.
+ if ident.Obj != nil {
+ panic(fmt.Sprintf("identifier %s already declared or resolved", ident.Name))
+ }
if ident.Name == "_" {
return
}