From cd283d9dc62346cb0538e35de9adfd2185e39772 Mon Sep 17 00:00:00 2001 From: "Samuel E. Moelius III" Date: Mon, 24 Jul 2023 19:44:05 -0400 Subject: [PATCH] Ensure generated expressions parse as block expressions --- cast_checks/tests/basic.rs | 6 ++++++ macro/src/lib.rs | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cast_checks/tests/basic.rs b/cast_checks/tests/basic.rs index cb32980..a036605 100644 --- a/cast_checks/tests/basic.rs +++ b/cast_checks/tests/basic.rs @@ -68,3 +68,9 @@ fn checked_float() { fn inferred_type(x: f64) -> i32 { x as _ } + +#[allow(dead_code, clippy::cast_lossless)] +#[cast_checks::enable] +fn block_expression(x: u32) -> f64 { + x as f64 / 2.0 +} diff --git a/macro/src/lib.rs b/macro/src/lib.rs index d396950..3f34751 100644 --- a/macro/src/lib.rs +++ b/macro/src/lib.rs @@ -86,7 +86,7 @@ impl VisitMut for Visitor { let msg = { String::from("invalid cast") }; *expr = parse_quote_spanned! { expr.span() => - { + ({ #[allow(unused_imports)] use cast_checks::MaybeTryIntoFallback; @@ -95,7 +95,7 @@ impl VisitMut for Visitor { } else { #operand as #ty } - } + }) }; } }