summary refs log tree commit diff
path: root/src/librustc_errors
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-08-26 12:50:11 +0000
committerbors <bors@rust-lang.org>2017-08-26 12:50:11 +0000
commit669d4770f2bac53a58bc9be0907f879b451be9b2 (patch)
tree4bf2646693e45f74df9a17a75842c88bd8690719 /src/librustc_errors
parente7070dd019d70b089a9983571dc40b2f9ee16cf5 (diff)
parent5a71e1235137fdcdef124b3af914ef06a24d65c4 (diff)
downloadrust-669d4770f2bac53a58bc9be0907f879b451be9b2.tar.gz
rust-669d4770f2bac53a58bc9be0907f879b451be9b2.zip
Auto merge of #44081 - est31:master, r=eddyb
Fix a byte/char confusion issue in the error emitter

Fixes #44078. Fixes #44023.

The start_col member is given in chars, while the code previously assumed it was given in bytes.

The more basic issue #44080 doesn't get fixed.
Diffstat (limited to 'src/librustc_errors')
-rw-r--r--src/librustc_errors/emitter.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/librustc_errors/emitter.rs b/src/librustc_errors/emitter.rs
index 3b1414ef83a..53d90531cc9 100644
--- a/src/librustc_errors/emitter.rs
+++ b/src/librustc_errors/emitter.rs
@@ -311,7 +311,9 @@ impl EmitterWriter {
         if line.annotations.len() == 1 {
             if let Some(ref ann) = line.annotations.get(0) {
                 if let AnnotationType::MultilineStart(depth) = ann.annotation_type {
-                    if source_string[0..ann.start_col].trim() == "" {
+                    if source_string.chars()
+                                    .take(ann.start_col)
+                                    .all(|c| c.is_whitespace()) {
                         let style = if ann.is_primary {
                             Style::UnderlinePrimary
                         } else {