Commit 0bef271e75

joachimschmidt557 <joachim.schmidt557@outlook.com>
2021-06-19 11:16:24
stage2 Sema: Add error notes to unresolvable peer types
1 parent aad4598
Changed files (1)
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);