Auto merge of #7891 - giraffate:fix_ice_for_undocumented_unsafe_blocks, r=flip1995

Fix ice in `undocumented_unsafe_blocks`

Fix https://github.com/rust-lang/rust-clippy/issues/7868

changelog: Fix ice in [`undocumented_unsafe_blocks`]
This commit is contained in:
bors 2021-10-28 13:37:40 +00:00
commit 7788af9c47
4 changed files with 28 additions and 2 deletions

View File

@ -145,8 +145,9 @@ fn block_has_safety_comment(&mut self, tcx: TyCtxt<'_>, enclosing_hir_id: HirId,
let file_name = source_map.span_to_filename(between_span);
let source_file = source_map.get_source_file(&file_name)?;
let lex_start = (between_span.lo().0 + 1) as usize;
let src_str = source_file.src.as_ref()?[lex_start..between_span.hi().0 as usize].to_string();
let lex_start = (between_span.lo().0 - source_file.start_pos.0 + 1) as usize;
let lex_end = (between_span.hi().0 - source_file.start_pos.0) as usize;
let src_str = source_file.src.as_ref()?[lex_start..lex_end].to_string();
let mut pos = 0;
let mut comment = false;

View File

@ -0,0 +1,3 @@
fn zero() {
unsafe { 0 };
}

View File

@ -0,0 +1,7 @@
#![warn(clippy::undocumented_unsafe_blocks)]
#![allow(clippy::no_effect)]
#[path = "auxiliary/ice-7868-aux.rs"]
mod zero;
fn main() {}

View File

@ -0,0 +1,15 @@
error: unsafe block missing a safety comment
--> $DIR/auxiliary/ice-7868-aux.rs:2:5
|
LL | unsafe { 0 };
| ^^^^^^^^^^^^
|
= note: `-D clippy::undocumented-unsafe-blocks` implied by `-D warnings`
help: consider adding a safety comment
|
LL ~ // Safety: ...
LL ~ unsafe { 0 };
|
error: aborting due to previous error