Skip to content

Commit 012e2cb

Browse files
committed
Generator was not handling "nil" slices correctly
1 parent a8e256a commit 012e2cb

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

coderd/database/dbgen/take.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package dbgen
22

3-
import "net"
3+
import (
4+
"net"
5+
)
46

57
func takeFirstIP(values ...net.IPNet) net.IPNet {
6-
takeFirstSlice([]string{})
7-
88
return takeFirstF(values, func(v net.IPNet) bool {
99
return len(v.IP) != 0 && len(v.Mask) != 0
1010
})
@@ -14,19 +14,22 @@ func takeFirstIP(values ...net.IPNet) net.IPNet {
1414
// []any is not a comparable type.
1515
func takeFirstSlice[T any](values ...[]T) []T {
1616
return takeFirstF(values, func(v []T) bool {
17-
return len(v) != 0
17+
return v != nil && len(v) != 0
1818
})
1919
}
2020

2121
// takeFirstF takes the first value that returns true
2222
func takeFirstF[Value any](values []Value, take func(v Value) bool) Value {
23-
var empty Value
2423
for _, v := range values {
2524
if take(v) {
2625
return v
2726
}
2827
}
29-
// If all empty, return empty
28+
// If all empty, return the last element
29+
if len(values) > 0 {
30+
return values[len(values)-1]
31+
}
32+
var empty Value
3033
return empty
3134
}
3235

0 commit comments

Comments
 (0)