fix: use loop variable instead of global ticker in GenerateFreshName
The function used a global `ticker` variable but never incremented it inside the loop, causing an infinite loop if the first generated name was already in the used set. This fix removes the global state and uses the loop variable `i` directly, which is cleaner and avoids the bug.
This commit is contained in:
@@ -6,13 +6,11 @@ import (
|
||||
"git.maximhutz.com/max/lambda/pkg/set"
|
||||
)
|
||||
|
||||
var ticker uint64 = 0
|
||||
|
||||
// GenerateFreshName generates a variable name that is not in the used set.
|
||||
// This function does not mutate the used set.
|
||||
func GenerateFreshName(used set.Set[string]) string {
|
||||
for i := uint64(0); ; i++ {
|
||||
attempt := "_" + string(strconv.AppendUint(nil, ticker, 10))
|
||||
attempt := "_" + string(strconv.AppendUint(nil, i, 10))
|
||||
|
||||
if !used.Has(attempt) {
|
||||
return attempt
|
||||
|
||||
Reference in New Issue
Block a user