From f6bd534fc9ccbb45d6dfbcaf51eccd2967856661 Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Fri, 25 Mar 2022 11:57:19 +0200 Subject: Sema: ensure error_set_merged is sorted --- src/Sema.zig | 4 ++++ test/behavior/type.zig | 7 +++++++ 2 files changed, 11 insertions(+) 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" { -- cgit v1.2.3