authorgravatar for jacoblevgw@gmail.comJacob G-W <jacoblevgw@gmail.com> 2021-06-09 16:57:27-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-06-21 17:03:02-07:00
log796b420092d194e3152586cf9419fddf4167ea36
tree8f34592e80dfa14c494a3953b3a4853283177574
parent7d4c8d70545241495324f919d57426559b8d07d5

std.enums: make code correct zig and not stage1


1 files changed, 3 insertions(+), 2 deletions(-)

lib/std/enums.zig+3-2
...@@ -753,10 +753,11 @@ pub fn EnumIndexer(comptime E: type) type {...@@ -753,10 +753,11 @@ pub fn EnumIndexer(comptime E: type) type {
753 std.sort.sort(EnumField, &fields, {}, ascByValue);753 std.sort.sort(EnumField, &fields, {}, ascByValue);
754 const min = fields[0].value;754 const min = fields[0].value;
755 const max = fields[fields.len - 1].value;755 const max = fields[fields.len - 1].value;
756 const fields_len = fields.len;
756 if (max - min == fields.len - 1) {757 if (max - min == fields.len - 1) {
757 return struct {758 return struct {
758 pub const Key = E;759 pub const Key = E;
759 pub const count = fields.len;760 pub const count = fields_len;
760 pub fn indexOf(e: E) usize {761 pub fn indexOf(e: E) usize {
761 return @intCast(usize, @enumToInt(e) - min);762 return @intCast(usize, @enumToInt(e) - min);
762 }763 }
...@@ -774,7 +775,7 @@ pub fn EnumIndexer(comptime E: type) type {...@@ -774,7 +775,7 @@ pub fn EnumIndexer(comptime E: type) type {
774775
775 return struct {776 return struct {
776 pub const Key = E;777 pub const Key = E;
777 pub const count = fields.len;778 pub const count = fields_len;
778 pub fn indexOf(e: E) usize {779 pub fn indexOf(e: E) usize {
779 for (keys) |k, i| {780 for (keys) |k, i| {
780 if (k == e) return i;781 if (k == e) return i;