Forráskód Böngészése

Merge pull request #5018 from Barinzaya/fix-fmt-bitset-nonzero-enum

Fix printing of `bit_set[Enum]` when `min(Enum) != 0`
Jeroen van Rijn 5 hónapja
szülő
commit
d77b8aeaa1
1 módosított fájl, 3 hozzáadás és 7 törlés
  1. 3 7
      core/fmt/fmt.odin

+ 3 - 7
core/fmt/fmt.odin

@@ -1802,11 +1802,8 @@ fmt_bit_set :: proc(fi: ^Info, v: any, name: string = "", verb: rune = 'v') {
 
 		e, is_enum := et.variant.(runtime.Type_Info_Enum)
 		commas := 0
-		loop: for i in 0 ..< bit_size {
-			if bits & (1<<i) == 0 {
-				continue loop
-			}
-
+		loop: for i in transmute(bit_set[0..<128])bits {
+			i := i64(i) + info.lower
 			if commas > 0 {
 				io.write_string(fi.writer, ", ", &fi.n)
 			}
@@ -1829,8 +1826,7 @@ fmt_bit_set :: proc(fi: ^Info, v: any, name: string = "", verb: rune = 'v') {
 					}
 				}
 			}
-			v := i64(i) + info.lower
-			io.write_i64(fi.writer, v, 10, &fi.n)
+			io.write_i64(fi.writer, i, 10, &fi.n)
 			commas += 1
 		}
 	}