zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 98a01f99c9b6834608055417169c2b3531ea67b6 (tree)
parent e5d4a694ea7dd251e10d6434c9321b5e0a548d4b
Author: Veikka Tuominen <git@vexu.eu>
Date:   Sat, 12 Mar 2022 11:14:17 +0200

Sema: fix typo in resolvePeerTypes

Diffstat:
Msrc/Sema.zig | 2+-
Mtest/behavior/error.zig | 8++++++++
2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/Sema.zig b/src/Sema.zig @@ -18910,7 +18910,7 @@ fn resolvePeerTypes( } const chosen_set_ty = err_set_ty orelse chosen_ty.errorUnionSet(); - const candidate_set_ty = chosen_ty.errorUnionSet(); + const candidate_set_ty = candidate_ty.errorUnionSet(); if (.ok == try sema.coerceInMemoryAllowedErrorSets(block, chosen_set_ty, candidate_set_ty, src, src)) { err_set_ty = chosen_set_ty; diff --git a/test/behavior/error.zig b/test/behavior/error.zig @@ -626,3 +626,11 @@ test "inferred error set equality" { try expect(BarError == BarError); try expect(BazError == BazError); } + +test "peer type resolution of two different error unions" { + const a: error{B}!void = {}; + const b: error{A}!void = {}; + var cond = true; + const err = if (cond) a else b; + try err; +}