refactor: use strings.SplitSeq instead of strings.Split in for-loop (#8983)

Signed-off-by: nikpivkin <nikita.pivkin@smartforce.io>
Co-authored-by: DmitriyLewen <dmitriy.lewen@smartforce.io>
This commit is contained in:
Nikita Pivkin
2025-06-09 16:01:53 +06:00
committed by GitHub
parent 15f421faf6
commit 454b894098
17 changed files with 26 additions and 30 deletions

View File

@@ -36,10 +36,9 @@ func (Parser) Parse(r xio.ReadSeekerAt) ([]ftypes.Package, []ftypes.Dependency,
name := strings.Join(dep[:2], ":")
version, classPathsString, _ := strings.Cut(dep[2], "=")
classPaths := strings.Split(classPathsString, ",")
dev := true
for _, classPath := range classPaths {
for classPath := range strings.SplitSeq(classPathsString, ",") {
if !strings.HasPrefix(classPath, "test") {
dev = false
break

View File

@@ -123,12 +123,12 @@ func trim(s string) string {
func parseLicenses(s string) string {
// e.g. `"Ruby".freeze, "BSDL".freeze`
// => {"\"Ruby\".freeze", "\"BSDL\".freeze"}
ss := strings.Split(s, ",")
ss := strings.SplitSeq(s, ",")
// e.g. {"\"Ruby\".freeze", "\"BSDL\".freeze"}
// => {"Ruby", "BSDL"}
var licenses []string
for _, l := range ss {
for l := range ss {
licenses = append(licenses, trim(l))
}

View File

@@ -148,7 +148,7 @@ func createFixedVersions(advisory dbTypes.Advisory) string {
var fixedVersions []string
for _, version := range advisory.VulnerableVersions {
for _, s := range strings.Split(version, ",") {
for s := range strings.SplitSeq(version, ",") {
s = strings.TrimSpace(s)
if !strings.HasPrefix(s, "<=") && strings.HasPrefix(s, "<") {
s = strings.TrimPrefix(s, "<")

View File

@@ -151,8 +151,8 @@ func (a alpineCmdAnalyzer) parseCommand(command string, envs map[string]string)
command = strings.TrimPrefix(command, "/bin/sh -c")
var commands []string
for _, cmd := range strings.Split(command, "&&") {
for _, c := range strings.Split(cmd, ";") {
for cmd := range strings.SplitSeq(command, "&&") {
for c := range strings.SplitSeq(cmd, ";") {
commands = append(commands, strings.TrimSpace(c))
}
}
@@ -162,7 +162,7 @@ func (a alpineCmdAnalyzer) parseCommand(command string, envs map[string]string)
}
var add bool
for _, field := range strings.Fields(cmd) {
for field := range strings.FieldsSeq(cmd) {
switch {
case strings.HasPrefix(field, "-") || strings.HasPrefix(field, "."):
continue

View File

@@ -150,7 +150,7 @@ func (a alpinePkgAnalyzer) parseLicense(line string) []string {
}
func (a alpinePkgAnalyzer) parseProvides(line, pkgID string, provides map[string]string) {
for _, p := range strings.Fields(line[2:]) {
for p := range strings.FieldsSeq(line[2:]) {
p = a.trimRequirement(p)
// Assume name ("P:") and version ("V:") are defined before provides ("p:")

View File

@@ -306,7 +306,7 @@ func (a dpkgAnalyzer) pkgID(name, version string) string {
}
func (a dpkgAnalyzer) parseStatus(s string) bool {
for _, ss := range strings.Fields(s) {
for ss := range strings.FieldsSeq(s) {
if ss == "deinstall" || ss == "purge" {
return false
}
@@ -317,10 +317,9 @@ func (a dpkgAnalyzer) parseStatus(s string) bool {
func (a dpkgAnalyzer) parseDepends(s string) []string {
// e.g. passwd, debconf (>= 0.5) | debconf-2.0
var dependencies []string
depends := strings.Split(s, ",")
for _, dep := range depends {
for dep := range strings.SplitSeq(s, ",") {
// e.g. gpgv | gpgv2 | gpgv1
for _, d := range strings.Split(dep, "|") {
for d := range strings.SplitSeq(dep, "|") {
d = a.trimVersionRequirement(d)
// Store only uniq package names here

View File

@@ -137,7 +137,7 @@ type Output struct {
func (o Output) Messages() []string {
var messages []string
for _, line := range strings.Split(o.b.String(), "\n") {
for line := range strings.SplitSeq(o.b.String(), "\n") {
if line == "" {
continue
}

View File

@@ -22,7 +22,7 @@ func adaptAccounts(deployment azure.Deployment) []storage.Account {
var bypasses []types.StringValue
bypassProp := acl.GetMapValue("bypass")
for _, bypass := range strings.Split(bypassProp.AsString(), ",") {
for bypass := range strings.SplitSeq(bypassProp.AsString(), ",") {
bypasses = append(bypasses, types.String(strings.TrimSpace(bypass), bypassProp.GetMetadata()))
}

View File

@@ -239,7 +239,7 @@ func init() {
marker = altMarker
}
for _, partial := range bytes.Split(data, marker) {
for partial := range bytes.SplitSeq(data, marker) {
var result map[string]any
if err := yaml.Unmarshal(partial, &result); err != nil {
continue

View File

@@ -87,9 +87,9 @@ func (n *node) decodeObjectToStruct(v reflect.Value) error {
t := v.Type()
for i := 0; i < t.NumField(); i++ {
fv := t.Field(i)
tags := strings.Split(fv.Tag.Get("json"), ",")
var tagName string
for _, tag := range tags {
for tag := range strings.SplitSeq(fv.Tag.Get("json"), ",") {
if tag != "omitempty" && tag != "-" {
tagName = tag
}

View File

@@ -31,13 +31,11 @@ func ResolveSplit(property *Property) (resolved *Property, success bool) {
}
func createPropertyList(splitProp, delimiterProp, parent *Property) []*Property {
splitString := splitProp.AsString()
delimiter := delimiterProp.AsString()
splits := strings.Split(splitString, delimiter)
var props []*Property
for _, split := range splits {
for split := range strings.SplitSeq(splitString, delimiter) {
props = append(props, parent.deriveResolved(cftypes.String, split))
}
return props

View File

@@ -212,7 +212,7 @@ func parseYaml(_ context.Context, r io.Reader, _ string) (any, error) {
marker = altMarker
}
for _, partial := range strings.Split(string(contents), marker) {
for partial := range strings.SplitSeq(string(contents), marker) {
var target any
if err := yaml.Unmarshal([]byte(partial), &target); err != nil {
return nil, err

View File

@@ -458,7 +458,7 @@ func (s *paramParser) Parse(str string) bool {
str = str[idx+1:]
paramStr := strings.TrimSuffix(str, "]")
for _, pair := range strings.Split(paramStr, ",") {
for pair := range strings.SplitSeq(paramStr, ",") {
parts := strings.Split(pair, "=")
if len(parts) != 2 {
continue

View File

@@ -581,8 +581,8 @@ func osNameVersion(name string) (string, string) {
var buffer bytes.Buffer
var v string
var err error
parts := strings.Split(name, " ")
for _, p := range parts {
parts := strings.SplitSeq(name, " ")
for p := range parts {
_, err = version.Parse(p)
if err != nil {
buffer.WriteString(p + " ")

View File

@@ -752,7 +752,7 @@ func LaxSplitLicenses(str string) []string {
}
var licenses []string
str = versionRegexp.ReplaceAllString(str, "$1-$4")
for _, s := range strings.Fields(str) {
for s := range strings.FieldsSeq(str) {
s = strings.Trim(s, "()")
switch s {
case "":

View File

@@ -187,7 +187,7 @@ func TestSlogtest(t *testing.T) {
}
results := func(*testing.T) map[string]any {
for _, line := range strings.Split(buf.String(), "\n") {
for line := range strings.SplitSeq(buf.String(), "\n") {
if line == "" {
continue
}
@@ -218,7 +218,7 @@ func parseLogLine(line string) (map[string]any, error) {
m["msg"] = parts[1]
if len(parts) == 3 {
for _, attr := range strings.Split(parts[2], " ") {
for attr := range strings.SplitSeq(parts[2], " ") {
kv := strings.SplitN(attr, "=", 2)
if len(kv) == 2 {
parseAttr(m, kv[0], kv[1])

View File

@@ -352,8 +352,8 @@ func (*Marshaler) advisories(refs []string) *[]cdx.Advisory {
// trimNonUrlInfo returns first valid URL.
func trimNonUrlInfo(ref string) string {
ss := strings.Split(ref, " ")
for _, s := range ss {
ss := strings.SplitSeq(ref, " ")
for s := range ss {
if u, err := url.Parse(s); err == nil && u.Scheme != "" && u.Host != "" {
return s
}