refactor: use slices.Contains to simplify code (#536)

Signed-off-by: vastonus <vastonus@outlook.com>
This commit is contained in:
vastonus 2025-10-16 19:57:01 +08:00 committed by GitHub
parent ed672b2bc9
commit f575e91b2c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 4 additions and 5 deletions

View File

@ -17,6 +17,7 @@ import (
"net" "net"
"os" "os"
"regexp" "regexp"
"slices"
"sort" "sort"
"strings" "strings"
@ -450,12 +451,10 @@ func makeTemplate(md *desc.MessageDescriptor, path []*desc.MessageDescriptor) pr
dm := dynamic.NewMessage(md) dm := dynamic.NewMessage(md)
// if the message is a recursive structure, we don't want to blow the stack // if the message is a recursive structure, we don't want to blow the stack
for _, seen := range path { if slices.Contains(path, md) {
if seen == md {
// already visited this type; avoid infinite recursion // already visited this type; avoid infinite recursion
return dm return dm
} }
}
path = append(path, dm.GetMessageDescriptor()) path = append(path, dm.GetMessageDescriptor())
// for repeated fields, add a single element with default value // for repeated fields, add a single element with default value