aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Sema.zig4
-rw-r--r--test/behavior/type.zig7
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" {