From 0bef271e75657195145a519199ce12b97db246f4 Mon Sep 17 00:00:00 2001 From: joachimschmidt557 Date: Sat, 19 Jun 2021 17:16:24 +0800 Subject: [PATCH] stage2 Sema: Add error notes to unresolvable peer types --- src/Sema.zig | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Sema.zig b/src/Sema.zig index 753ef8fb9c..6d5480c53d 100644 --- 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);