From 8fad69c2001ebe78d67e193f05969bb6f681b109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20K=C3=BCber?= Date: Thu, 28 Mar 2019 20:18:50 -0700 Subject: [PATCH] Add comemnts clarifying logic --- src/librustc_errors/emitter.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/librustc_errors/emitter.rs b/src/librustc_errors/emitter.rs index d2c9db2db79c..98db0097c745 100644 --- a/src/librustc_errors/emitter.rs +++ b/src/librustc_errors/emitter.rs @@ -314,8 +314,13 @@ impl EmitterWriter { // | |______foo // | baz add_annotation_to_file(&mut output, file.clone(), ann.line_start, ann.as_start()); + // 4 is the minimum vertical length of a multiline span when presented: two lines + // of code and two lines of underline. This is not true for the special case where + // the beginning doesn't have an underline, but the current logic seems to be + // working correctly. let middle = min(ann.line_start + 4, ann.line_end); for line in ann.line_start + 1..middle { + // Every `|` that joins the beginning of the span (`___^`) to the end (`|__^`). add_annotation_to_file(&mut output, file.clone(), line, ann.as_line()); } if middle < ann.line_end - 1 {