From 2bae058dc6d17faa5bf2883a9898519fcda58d8c Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Sat, 18 Apr 2026 11:21:19 +0200 Subject: [PATCH] Parse: minor optimizations - add early return for empty strings - skip lowercase-regex if the input is already lowercase Signed-off-by: Sebastiaan van Stijn --- reference.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/reference.go b/reference.go index 14d5b46..650585f 100644 --- a/reference.go +++ b/reference.go @@ -228,12 +228,14 @@ func splitDomain(name string) (string, string) { // _ "crypto/sha256" // ) func Parse(s string) (Reference, error) { + if s == "" { + return nil, ErrNameEmpty + } + matches := ReferenceRegexp.FindStringSubmatch(s) if matches == nil { - if s == "" { - return nil, ErrNameEmpty - } - if ReferenceRegexp.FindStringSubmatch(strings.ToLower(s)) != nil { + if sl := strings.ToLower(s); sl != s && ReferenceRegexp.FindStringSubmatch(sl) != nil { + // Succeeds when lower-casing, so input contains an invalid repository name. return nil, ErrNameContainsUppercase } return nil, ErrReferenceInvalidFormat