about summary refs log tree commit diff
diff options
context:
space:
mode:
authorÖmer Sinan Ağacan <omeragacan@gmail.com>2021-03-29 12:24:18 +0300
committerÖmer Sinan Ağacan <omeragacan@gmail.com>2021-03-29 13:38:36 +0300
commit8d7432af7bd82ae5a9c06983d51a03438cf1b625 (patch)
treedb42db7379f138f39210e396105eede6cefbc26d
parentcc4103089f40a163f6d143f06359cba7043da29b (diff)
downloadrust-8d7432af7bd82ae5a9c06983d51a03438cf1b625.tar.gz
rust-8d7432af7bd82ae5a9c06983d51a03438cf1b625.zip
Replace tabs in err messages before rendering
This is done in other call sites, but was missing in one place.

Fixes #83638
-rw-r--r--compiler/rustc_errors/src/emitter.rs2
-rw-r--r--src/test/ui/issue-83639.rs6
-rw-r--r--src/test/ui/issue-83639.stderr8
3 files changed, 15 insertions, 1 deletions
diff --git a/compiler/rustc_errors/src/emitter.rs b/compiler/rustc_errors/src/emitter.rs
index 633c64af3c5..8ec06feb5bf 100644
--- a/compiler/rustc_errors/src/emitter.rs
+++ b/compiler/rustc_errors/src/emitter.rs
@@ -1258,7 +1258,7 @@ impl EmitterWriter {
                 buffer.append(0, ": ", header_style);
             }
             for &(ref text, _) in msg.iter() {
-                buffer.append(0, text, header_style);
+                buffer.append(0, &replace_tabs(text), header_style);
             }
         }
 
diff --git a/src/test/ui/issue-83639.rs b/src/test/ui/issue-83639.rs
new file mode 100644
index 00000000000..6ddbedfa0bc
--- /dev/null
+++ b/src/test/ui/issue-83639.rs
@@ -0,0 +1,6 @@
+// check-fail
+// ignore-tidy-tab
+
+fn main() {
+    """	" //~ ERROR
+}
diff --git a/src/test/ui/issue-83639.stderr b/src/test/ui/issue-83639.stderr
new file mode 100644
index 00000000000..4c10df1917c
--- /dev/null
+++ b/src/test/ui/issue-83639.stderr
@@ -0,0 +1,8 @@
+error: expected one of `.`, `;`, `?`, `}`, or an operator, found `"    "`
+  --> $DIR/issue-83639.rs:5:7
+   |
+LL |     """    "
+   |       ^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
+
+error: aborting due to previous error
+