mirror of
https://github.com/rust-lang/rust.git
synced 2025-11-25 12:27:02 +00:00
No longer track "zero-width" chars in `SourceMap`, read directly from the line when calculating the `display_col` of a `BytePos`. Move `char_width` to `rustc_span` and use it from the emitter.
This change allows the following to properly align in terminals (depending on the font, the replaced control codepoints are rendered as 1 or 2 width, on my terminal they are rendered as 1, on VSCode text they are rendered as 2):
```
error: this file contains an unclosed delimiter
--> $DIR/issue-68629.rs:5:17
|
LL | ␜␟ts␀![{i
| -- unclosed delimiter
| |
| unclosed delimiter
LL | ␀␀ fn rݻoa>rݻm
| ^
```
32 lines
721 B
Plaintext
32 lines
721 B
Plaintext
warning: multiple lines skipped by escaped newline
|
||
--> $DIR/str-escape.rs:6:14
|
||
|
|
||
LL | let s = "\
|
||
| ______________^
|
||
LL | |
|
||
LL | | ";
|
||
| |_____________^ skipping everything up to and including this point
|
||
|
||
warning: whitespace symbol '\u{a0}' is not skipped
|
||
--> $DIR/str-escape.rs:12:18
|
||
|
|
||
LL | let s = c"foo\
|
||
| __________________^
|
||
LL | | bar
|
||
| | ^ whitespace symbol '\u{a0}' is not skipped
|
||
| |___|
|
||
|
|
||
|
||
warning: whitespace symbol '\u{c}' is not skipped
|
||
--> $DIR/str-escape.rs:26:16
|
||
|
|
||
LL | let s = b"a\
|
||
| ________________^
|
||
LL | | ␌b";
|
||
| | ^ whitespace symbol '\u{c}' is not skipped
|
||
| |_____|
|
||
|
|
||
|
||
warning: 3 warnings emitted
|
||
|