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
| ^
```
|
||
|---|---|---|
| .. | ||
| cfg-rustdoc.rs | ||
| cfg-rustdoc.stderr | ||
| check-doc-alias-attr-location.rs | ||
| check-doc-alias-attr-location.stderr | ||
| check-doc-alias-attr.rs | ||
| check-doc-alias-attr.stderr | ||
| deny-invalid-doc-attrs.rs | ||
| deny-invalid-doc-attrs.stderr | ||
| doc-alias-crate-level.rs | ||
| doc-alias-crate-level.stderr | ||
| doc-alias-same-name.rs | ||
| doc-alias-same-name.stderr | ||
| doc-inline-extern-crate.rs | ||
| doc-inline-extern-crate.stderr | ||
| doc-primitive.rs | ||
| doc-primitive.stderr | ||
| doc-test-attr-pass.rs | ||
| doc-test-attr.rs | ||
| doc-test-attr.stderr | ||
| doc_keyword.rs | ||
| doc_keyword.stderr | ||
| duplicate_doc_alias.rs | ||
| duplicate_doc_alias.stderr | ||
| feature-gate-doc_primitive.rs | ||
| feature-gate-doc_primitive.stderr | ||
| hidden-doc-associated-item.rs | ||
| README.md | ||
| renamed-features-rustdoc_internals.rs | ||
| renamed-features-rustdoc_internals.stderr | ||
| unterminated-doc-comment.rs | ||
| unterminated-doc-comment.stderr | ||
This directory is for tests that have to do with rustdoc, but test the behavior of rustc. For example, rustc should not warn that an attribute rustdoc uses is unknown.