Auto merge of #7039 - phansch:melt-ice, r=flip1995
tabs_in_doc_comments: Fix ICE due to char indexing This is a quick-fix for an ICE in `tabs_in_doc_comments`. The problem was that we we're indexing into possibly multi-byte characters, such as '位'. More specifically `get_chunks_of_tabs` was returning indices into multi-byte characters. Those were passed on to a `Span` creation that then caused the ICE. This fix makes sure that we don't return indices that point inside a multi-byte character. *However*, we are still iterating over unicode codepoints, not grapheme clusters. So a seemingly single character like y̆ , which actually consists of two codepoints, will probably still cause incorrect spans in the output. But I don't think we handle those cases anywhere in Clippy currently? Fixes #5835 changelog: Fix ICE in `tabs_in_doc_comments`
This commit is contained in:
commit
24921df7bd
3 changed files with 39 additions and 11 deletions
9
tests/ui/crashes/ice-5835.rs
Normal file
9
tests/ui/crashes/ice-5835.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#[rustfmt::skip]
|
||||
pub struct Foo {
|
||||
/// 位
|
||||
/// ^ Do not remove this tab character.
|
||||
/// It was required to trigger the ICE.
|
||||
pub bar: u8,
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
10
tests/ui/crashes/ice-5835.stderr
Normal file
10
tests/ui/crashes/ice-5835.stderr
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
error: using tabs in doc comments is not recommended
|
||||
--> $DIR/ice-5835.rs:3:10
|
||||
|
|
||||
LL | /// 位
|
||||
| ^^^^ help: consider using four spaces per tab
|
||||
|
|
||||
= note: `-D clippy::tabs-in-doc-comments` implied by `-D warnings`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue