Browse Source

Pass new -vet-style check.

Jeroen van Rijn 1 year ago
parent
commit
858c78b844
1 changed files with 12 additions and 7 deletions
  1. 12 7
      core/slice/slice.odin

+ 12 - 7
core/slice/slice.odin

@@ -706,7 +706,7 @@ enumerated_array :: proc(ptr: ^$T) -> []intrinsics.type_elem_type(T)
 // e.g.:
 //    bs := slice.enum_slice_to_bitset(my_flag_slice, rl.ConfigFlags)
 @(require_results)
-enum_slice_to_bitset :: proc(enums: []$E, $T: typeid/bit_set[E]) -> (bits: T) where intrinsics.type_is_enum(E) && intrinsics.type_bit_set_elem_type(T) == E {
+enum_slice_to_bitset :: proc(enums: []$E, $T: typeid/bit_set[E]) -> (bits: T) where intrinsics.type_is_enum(E), intrinsics.type_bit_set_elem_type(T) == E {
 	for v in enums {
 		bits |= {v}
 	}
@@ -717,7 +717,7 @@ enum_slice_to_bitset :: proc(enums: []$E, $T: typeid/bit_set[E]) -> (bits: T) wh
 // e.g.:
 //    sl := slice.bitset_to_enum_slice(flag_buf[:], bs)
 @(require_results)
-bitset_to_enum_slice_with_buffer :: proc(buf: []$E, bs: $T) -> (slice: []E) where intrinsics.type_is_enum(E) && intrinsics.type_bit_set_elem_type(T) == E {
+bitset_to_enum_slice_with_buffer :: proc(buf: []$E, bs: $T) -> (slice: []E) where intrinsics.type_is_enum(E), intrinsics.type_bit_set_elem_type(T) == E {
 	count := 0
 	for v in bs {
 		buf[count] = v
@@ -730,14 +730,19 @@ bitset_to_enum_slice_with_buffer :: proc(buf: []$E, bs: $T) -> (slice: []E) wher
 // e.g.:
 //    sl := slice.bitset_to_enum_slice(bs)
 @(require_results)
-bitset_to_enum_slice_with_make :: proc(buf: []$E, bs: $T) -> (slice: []E) where intrinsics.type_is_enum(E) && intrinsics.type_bit_set_elem_type(T) == E {
-
+bitset_to_enum_slice_with_make :: proc(bs: $T, $E: typeid) -> (slice: []E) where intrinsics.type_is_enum(E), intrinsics.type_bit_set_elem_type(T) == E {
 	count := 0
-	for v in bs {
-		buf[count] = v
+	for _ in bs {
 		count += 1
 	}
-	return buf[:count]
+	slice = make([]E, count)
+
+	i := 0
+	for v in bs {
+		slice[i] = v
+		i += 1
+	}
+	return
 }
 
 bitset_to_enum_slice :: proc{bitset_to_enum_slice_with_make, bitset_to_enum_slice_with_buffer}