authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-03-25 11:57:19+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-03-25 22:32:14+02:00
logf6bd534fc9ccbb45d6dfbcaf51eccd2967856661
tree72dd55931e52c682e867e6d4947fa9ccc4265bf6
parenta4c5ec49f1781054ef9394fe114e4338ed9970d4

Sema: ensure error_set_merged is sorted


2 files changed, 11 insertions(+), 0 deletions(-)

src/Sema.zig+4
......@@ -7390,6 +7390,8 @@ fn zirSwitchBlock(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError
73907390 names.putAssumeCapacityNoClobber(error_name, {});
73917391 }
73927392
7393 // names must be sorted
7394 Module.ErrorSet.sortNames(&names);
73937395 else_error_ty = try Type.Tag.error_set_merged.create(sema.arena, names);
73947396 }
73957397 },
......@@ -12979,6 +12981,8 @@ fn zirReify(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.I
1297912981 );
1298012982 }
1298112983
12984 // names must be sorted
12985 Module.ErrorSet.sortNames(&names);
1298212986 const ty = try Type.Tag.error_set_merged.create(sema.arena, names);
1298312987 return sema.addType(ty);
1298412988 },
test/behavior/type.zig+7
......@@ -260,6 +260,13 @@ test "Type.ErrorSet" {
260260 .{ .name = "C" },
261261 },
262262 });
263 _ = @Type(.{
264 .ErrorSet = &.{
265 .{ .name = "C" },
266 .{ .name = "B" },
267 .{ .name = "A" },
268 },
269 });
263270}
264271
265272test "Type.Struct" {