diff options
| -rw-r--r-- | src/Sema.zig | 4 | ||||
| -rw-r--r-- | test/behavior/type.zig | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index d9eea3e811..2e7bd06ada 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -7390,6 +7390,8 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError names.putAssumeCapacityNoClobber(error_name, {}); } + // names must be sorted + Module.ErrorSet.sortNames(&names); else_error_ty = try Type.Tag.error_set_merged.create(sema.arena, names); } }, @@ -12979,6 +12981,8 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I ); } + // names must be sorted + Module.ErrorSet.sortNames(&names); const ty = try Type.Tag.error_set_merged.create(sema.arena, names); return sema.addType(ty); }, diff --git a/test/behavior/type.zig b/test/behavior/type.zig index e3c896d0f7..65bebff946 100644 --- a/test/behavior/type.zig +++ b/test/behavior/type.zig @@ -260,6 +260,13 @@ test "Type.ErrorSet" { .{ .name = "C" }, }, }); + _ = @Type(.{ + .ErrorSet = &.{ + .{ .name = "C" }, + .{ .name = "B" }, + .{ .name = "A" }, + }, + }); } test "Type.Struct" { |
