motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit 0bef271e75657195145a519199ce12b97db246f4 (tree)
parent aad4598367b136a06e3569373be7da8febea7f31
Author: joachimschmidt557 <joachim.schmidt557@outlook.com>
Date:   Sat, 19 Jun 2021 17:16:24 +0800

stage2 Sema: Add error notes to unresolvable peer types

Diffstat:
Msrc/Sema.zig | 11+++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/Sema.zig b/src/Sema.zig @@ -8398,8 +8398,15 @@ fn resolvePeerTypes( continue; } - // TODO error notes pointing out each type - return sema.mod.fail(&block.base, src, "incompatible types: '{}' and '{}'", .{ chosen_ty, candidate_ty }); + const msg = msg: { + const msg = try sema.mod.errMsg(&block.base, src, "incompatible types: '{}' and '{}'", .{ chosen_ty, candidate_ty }); + errdefer msg.destroy(sema.gpa); + // TODO add error notes + // try sema.mod.errNote(&block.base, chosen.src, msg, "type '{}' here", .{chosen_ty}); + // try sema.mod.errNote(&block.base, candidate.src, msg, "type '{}' here", .{candidate_ty}); + break :msg msg; + }; + return sema.mod.failWithOwnedErrorMsg(&block.base, msg); } return sema.typeOf(chosen);