From: Takayuki Nakata Date: Wed, 17 Nov 2021 13:35:01 +0000 (+0900) Subject: Fix ICE on `undocumented_unsafe_blocks` X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=3f3d7c20052e3fd4bcebbb5d32ebc1fa33cf33a7;p=rust.git Fix ICE on `undocumented_unsafe_blocks` --- diff --git a/clippy_lints/src/undocumented_unsafe_blocks.rs b/clippy_lints/src/undocumented_unsafe_blocks.rs index c886faf5d28..ccc49caf47c 100644 --- a/clippy_lints/src/undocumented_unsafe_blocks.rs +++ b/clippy_lints/src/undocumented_unsafe_blocks.rs @@ -137,10 +137,10 @@ fn block_has_safety_comment(&mut self, tcx: TyCtxt<'_>, enclosing_hir_id: HirId, let between_span = if block_span.from_expansion() { self.macro_expansion = true; - enclosing_scope_span.with_hi(block_span.hi()) + enclosing_scope_span.with_hi(block_span.hi()).source_callsite() } else { self.macro_expansion = false; - enclosing_scope_span.to(block_span) + enclosing_scope_span.to(block_span).source_callsite() }; let file_name = source_map.span_to_filename(between_span); diff --git a/tests/ui/undocumented_unsafe_blocks.rs b/tests/ui/undocumented_unsafe_blocks.rs index 52577323a58..7e510d89475 100644 --- a/tests/ui/undocumented_unsafe_blocks.rs +++ b/tests/ui/undocumented_unsafe_blocks.rs @@ -284,4 +284,8 @@ fn interference() { unsafe {}; } +pub fn print_binary_tree() { + println!("{}", unsafe { String::from_utf8_unchecked(vec![]) }); +} + fn main() {} diff --git a/tests/ui/undocumented_unsafe_blocks.stderr b/tests/ui/undocumented_unsafe_blocks.stderr index 613e9ffca45..ebe589001a1 100644 --- a/tests/ui/undocumented_unsafe_blocks.stderr +++ b/tests/ui/undocumented_unsafe_blocks.stderr @@ -155,5 +155,17 @@ LL ~ // Safety: ... LL ~ unsafe {}; | -error: aborting due to 13 previous errors +error: unsafe block missing a safety comment + --> $DIR/undocumented_unsafe_blocks.rs:288:20 + | +LL | println!("{}", unsafe { String::from_utf8_unchecked(vec![]) }); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +help: consider adding a safety comment + | +LL ~ println!("{}", // Safety: ... +LL ~ unsafe { String::from_utf8_unchecked(vec![]) }); + | + +error: aborting due to 14 previous errors