Remove redundant len check around loop (#27464)

This pull request is a minor code cleanup.

From the Go specification (https://go.dev/ref/spec#For_range):

> "1. For a nil slice, the number of iterations is 0."
> "3. If the map is nil, the number of iterations is 0."

`len` returns 0 if the slice or map is nil
(https://pkg.go.dev/builtin#len). Therefore, checking `len(v) > 0`
before a loop is unnecessary.

---

At the time of writing this pull request, there wasn't a lint rule that
catches these issues. The closest I could find is
https://staticcheck.dev/docs/checks/#S103

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
This commit is contained in:
Eng Zer Jun 2023-10-06 14:49:37 +08:00 committed by GitHub
parent 6cdeb7798b
commit 13d5d2e711
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 31 additions and 45 deletions

View file

@ -116,17 +116,13 @@ func (repo *Repository) searchCommits(id SHA1, opts SearchCommitsOptions) ([]*Co
c.AddArguments("-i") c.AddArguments("-i")
// add authors if present in search query // add authors if present in search query
if len(opts.Authors) > 0 { for _, v := range opts.Authors {
for _, v := range opts.Authors { c.AddOptionFormat("--author=%s", v)
c.AddOptionFormat("--author=%s", v)
}
} }
// add committers if present in search query // add committers if present in search query
if len(opts.Committers) > 0 { for _, v := range opts.Committers {
for _, v := range opts.Committers { c.AddOptionFormat("--committer=%s", v)
c.AddOptionFormat("--committer=%s", v)
}
} }
// add time constraints if present in search query // add time constraints if present in search query
@ -150,10 +146,8 @@ func (repo *Repository) searchCommits(id SHA1, opts SearchCommitsOptions) ([]*Co
// add remaining keywords from search string // add remaining keywords from search string
// note this is done only for command created above // note this is done only for command created above
if len(opts.Keywords) > 0 { for _, v := range opts.Keywords {
for _, v := range opts.Keywords { cmd.AddOptionFormat("--grep=%s", v)
cmd.AddOptionFormat("--grep=%s", v)
}
} }
// search for commits matching given constraints and keywords in commit msg // search for commits matching given constraints and keywords in commit msg
@ -168,25 +162,23 @@ func (repo *Repository) searchCommits(id SHA1, opts SearchCommitsOptions) ([]*Co
// if there are any keywords (ie not committer:, author:, time:) // if there are any keywords (ie not committer:, author:, time:)
// then let's iterate over them // then let's iterate over them
if len(opts.Keywords) > 0 { for _, v := range opts.Keywords {
for _, v := range opts.Keywords { // ignore anything not matching a valid sha pattern
// ignore anything not matching a valid sha pattern if IsValidSHAPattern(v) {
if IsValidSHAPattern(v) { // create new git log command with 1 commit limit
// create new git log command with 1 commit limit hashCmd := NewCommand(repo.Ctx, "log", "-1", prettyLogFormat)
hashCmd := NewCommand(repo.Ctx, "log", "-1", prettyLogFormat) // add previous arguments except for --grep and --all
// add previous arguments except for --grep and --all addCommonSearchArgs(hashCmd)
addCommonSearchArgs(hashCmd) // add keyword as <commit>
// add keyword as <commit> hashCmd.AddDynamicArguments(v)
hashCmd.AddDynamicArguments(v)
// search with given constraints for commit matching sha hash of v // search with given constraints for commit matching sha hash of v
hashMatching, _, err := hashCmd.RunStdBytes(&RunOpts{Dir: repo.Path}) hashMatching, _, err := hashCmd.RunStdBytes(&RunOpts{Dir: repo.Path})
if err != nil || bytes.Contains(stdout, hashMatching) { if err != nil || bytes.Contains(stdout, hashMatching) {
continue continue
}
stdout = append(stdout, hashMatching...)
stdout = append(stdout, '\n')
} }
stdout = append(stdout, hashMatching...)
stdout = append(stdout, '\n')
} }
} }

View file

@ -213,11 +213,9 @@ func NewConfigProviderFromFile(file string, extraConfigs ...string) (ConfigProvi
} }
} }
if len(extraConfigs) > 0 { for _, s := range extraConfigs {
for _, s := range extraConfigs { if err := cfg.Append([]byte(s)); err != nil {
if err := cfg.Append([]byte(s)); err != nil { return nil, fmt.Errorf("unable to append more config: %v", err)
return nil, fmt.Errorf("unable to append more config: %v", err)
}
} }
} }

View file

@ -965,10 +965,8 @@ func NewIssue(ctx *context.Context) {
_, templateErrs := issue_service.GetTemplatesFromDefaultBranch(ctx.Repo.Repository, ctx.Repo.GitRepo) _, templateErrs := issue_service.GetTemplatesFromDefaultBranch(ctx.Repo.Repository, ctx.Repo.GitRepo)
templateLoaded, errs := setTemplateIfExists(ctx, issueTemplateKey, IssueTemplateCandidates) templateLoaded, errs := setTemplateIfExists(ctx, issueTemplateKey, IssueTemplateCandidates)
if len(errs) > 0 { for k, v := range errs {
for k, v := range errs { templateErrs[k] = v
templateErrs[k] = v
}
} }
if ctx.Written() { if ctx.Written() {
return return

View file

@ -152,14 +152,12 @@ func NewPullRequest(ctx context.Context, repo *repo_model.Repository, issue *iss
if issue.Milestone != nil { if issue.Milestone != nil {
notify_service.IssueChangeMilestone(ctx, issue.Poster, issue, 0) notify_service.IssueChangeMilestone(ctx, issue.Poster, issue, 0)
} }
if len(assigneeIDs) > 0 { for _, assigneeID := range assigneeIDs {
for _, assigneeID := range assigneeIDs { assignee, err := user_model.GetUserByID(ctx, assigneeID)
assignee, err := user_model.GetUserByID(ctx, assigneeID) if err != nil {
if err != nil { return ErrDependenciesLeft
return ErrDependenciesLeft
}
notify_service.IssueChangeAssignee(ctx, issue.Poster, issue, assignee, false, assigneeCommentMap[assigneeID])
} }
notify_service.IssueChangeAssignee(ctx, issue.Poster, issue, assignee, false, assigneeCommentMap[assigneeID])
} }
return nil return nil