Zig Version
0.13.0
Steps to Reproduce and Observed Behavior
- Declare a non-exhaustive sparse
enum - Try initializing the
EnumArray via init or initDefault / EnumMap via initFullWith or initFullWithDefault - -> compilation error similar to "no field with value '@enumFromInt(1)' in enum 'main.E'"
EnumArray code example:
conststd=@import("std");
pubfnmain() !void {
constE=enum(u3) {
A=0,
B=1, // 2,C=2, // 4,_,
};
constEA=std.EnumArray(E, []constu8).initDefault("default", .{
.A="A",
.B="B",
.C="C",
});
std.debug.print("{s}\n", .{EA.get(E.A)});
}Error message:
C:\Program Files\zigup\zig\0.13.0\files\lib\std\enums.zig:1094:29: error: no field with value '@enumFromInt(3)' in enum 'main.E'
const tag = @tagName(key);
^~~~~~~~~~~~~
src\main.zig:4:15: note: declared here
const E = enum(u3) {
^~~~
referenced by:
main: src\main.zig:11:56
callMain: C:\Program Files\zigup\zig\0.13.0\files\lib\std\start.zig:524:32
EnumMap code example:
conststd=@import("std");
pubfnmain() !void {
constE=enum(u3) {
A=0,
B=1,
C=2,
_,
};
constEM=std.EnumMap(E, []constu8).initFullWithDefault("default", .{
.A="A",
.B="B",
.C="C",
});
std.debug.print("{?s}\n", .{EM.get(E.A)});
}Error message:
C:\Program Files\zigup\zig\0.13.0\files\lib\std\enums.zig:507:29: error: no field with value '@enumFromInt(3)' in enum 'main.E'
const tag = @tagName(key);
^~~~~~~~~~~~~
src\main.zig:4:15: note: declared here
const E = enum(u3) {
^~~~
referenced by:
main: src\main.zig:11:62
callMain: C:\Program Files\zigup\zig\0.13.0\files\lib\std\start.zig:524:32
Expected Behavior
Successful compilation with valid behavior
Zig Version
0.13.0
Steps to Reproduce and Observed Behavior
enumEnumArrayviainitorinitDefault/EnumMapviainitFullWithorinitFullWithDefaultEnumArraycode example:Error message:
EnumMapcode example:Error message:
Expected Behavior
Successful compilation with valid behavior