Skip to content

Commit b9a5c59

Browse files
committed
remove expect() in unnecessary_transmutes
1 parent 862156d commit b9a5c59

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

compiler/rustc_mir_transform/src/check_unnecessary_transmutes.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,8 @@ impl<'tcx> Visitor<'tcx> for UnnecessaryTransmuteChecker<'_, 'tcx> {
8787
&& let Some((func_def_id, _)) = func.const_fn_def()
8888
&& self.tcx.is_intrinsic(func_def_id, sym::transmute)
8989
&& let span = self.body.source_info(location).span
90-
&& let Some(lint) = self.is_unnecessary_transmute(
91-
func,
92-
self.tcx.sess.source_map().span_to_snippet(arg).expect("ok"),
93-
span,
94-
)
90+
&& let Ok(snippet) = self.tcx.sess.source_map().span_to_snippet(arg)
91+
&& let Some(lint) = self.is_unnecessary_transmute(func, snippet, span)
9592
&& let Some(hir_id) = terminator.source_info.scope.lint_root(&self.body.source_scopes)
9693
{
9794
self.tcx.emit_node_span_lint(UNNECESSARY_TRANSMUTES, hir_id, span, lint);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
//@ compile-flags: --remap-path-prefix=/=/non-existent
2+
3+
#[macro_export]
4+
macro_rules! transmute {
5+
($e:expr) => {{
6+
let e = $e;
7+
std::mem::transmute(e)
8+
}};
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
//@ aux-crate: zerocopy=unnecessary-transmute-path-remap-ice-140277-trans.rs
2+
#![deny(unnecessary_transmutes)]
3+
4+
fn bytes_at_home(x: [u8; 4]) -> u32 {
5+
unsafe { zerocopy::transmute!(x) }
6+
}
7+
fn main() {}

0 commit comments

Comments
 (0)