Skip to content

Commit 67ecf83

Browse files
Syntax change: unsafe_fn uses => and unsafe_method uses =>@ ... =>
1 parent 5748b59 commit 67ecf83

File tree

13 files changed

+39
-31
lines changed

13 files changed

+39
-31
lines changed

README.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ const unsafe fn unsafe_fn_one_arg(b: bool) -> bool { b }
110110
const unsafe fn unsafe_fn_two_args(_: bool, u: u8) -> u8 { u }
111111

112112
const _: () = unsafe_fn!(unsafe_fn_no_args);
113-
const _: bool = unsafe_fn!(unsafe_fn_one_arg, true);
114-
const _: u8 = unsafe_fn!(unsafe_fn_two_args, true, 0);
113+
const _: bool = unsafe_fn!(unsafe_fn_one_arg=> true);
114+
const _: u8 = unsafe_fn!(unsafe_fn_two_args=> true, 0);
115115
fn main() {}
116116
```
117117

@@ -122,13 +122,13 @@ fn main() {}
122122
mod module {
123123
use crate::prudent::*;
124124
// Works for Copy types
125-
const _: u8 = unsafe_method!(1u8, unchecked_add, 0);
125+
const _: u8 = unsafe_method!(1u8 =>@ unchecked_add => 0);
126126
//const _: u8 = unsafe_method!(({#[forbid(unused)] let v = 1u8; v}), unchecked_add, 0);
127127
//const _: u8 = unsafe_method!(#[allow_unsafe] 1u8, unchecked_add, 0);
128128
//const _: u8 = unsafe_method!(#[expect_unsafex] 1u8, unchecked_add, 0);
129129

130130
//const _: u8 = unsafe_method!(({#forbid(unused) let v = 1u8; v}), unchecked_add, 0);
131-
const _: u8 = unsafe_method!(~allow_unsafe 1u8, unchecked_add, 0);
131+
const _: u8 = unsafe_method!(~allow_unsafe 1u8 =>@ unchecked_add => 0);
132132
//const _: u8 = unsafe_method!(~expect_unsafe 1u8, unchecked_add, 0);
133133
}
134134
fn main() {}
@@ -159,9 +159,9 @@ impl SNonCopy {
159159
fn main() {
160160
let s = SNonCopy {};
161161
// Works for non-Copy types
162-
unsafe_method!(s, unsafe_method_no_args);
163-
unsafe_method!(s, unsafe_method_one_arg, true);
164-
unsafe_method!(s, unsafe_method_two_args, true, false);
162+
unsafe_method!(s =>@ unsafe_method_no_args);
163+
unsafe_method!(s =>@ unsafe_method_one_arg => true);
164+
unsafe_method!(s =>@ unsafe_method_two_args => true, false);
165165
}
166166
```
167167

@@ -178,9 +178,9 @@ impl SNonCopy {
178178

179179
fn main() {
180180
let mut s = SNonCopy {};
181-
unsafe_method!(s, unsafe_method_no_args);
182-
unsafe_method!(s, unsafe_method_one_arg, true);
183-
unsafe_method!(s, unsafe_method_two_args, true, false);
181+
unsafe_method!(s =>@ unsafe_method_no_args);
182+
unsafe_method!(s =>@ unsafe_method_one_arg => true);
183+
unsafe_method!(s =>@ unsafe_method_two_args => true, false);
184184
}
185185
```
186186

@@ -197,9 +197,9 @@ fn main() {
197197
unsafe fn unsafe_method_two_args(self, _: bool, _: bool) {}
198198
}
199199

200-
unsafe_method!(SNonCopy {}, unsafe_method_no_args);
201-
unsafe_method!(SNonCopy {}, unsafe_method_one_arg, true);
202-
unsafe_method!(SNonCopy {}, unsafe_method_two_args, true, false);
200+
unsafe_method!(SNonCopy {} =>@ unsafe_method_no_args);
201+
unsafe_method!(SNonCopy {} =>@ unsafe_method_one_arg => true);
202+
unsafe_method!(SNonCopy {} =>@ unsafe_method_two_args => true, false);
203203
}
204204
{
205205
#[derive(Clone, Copy)]
@@ -209,8 +209,8 @@ fn main() {
209209
}
210210

211211
let sCopy = SCopy {};
212-
unsafe_method!(sCopy, unsafe_method_no_args);
213-
unsafe_method!(sCopy, unsafe_method_no_args);
212+
unsafe_method!(sCopy =>@ unsafe_method_no_args);
213+
unsafe_method!(sCopy =>@ unsafe_method_no_args);
214214
let _ = sCopy;
215215
}
216216
}

src/linted.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,10 @@ pub const PRUDENT_INTERNAL_LINTED_VERSION: &str = "0.0.3-beta";
2929
/// `unsafe.`
3030
/// - Some arguments. The given expression (which evaluates to the function to be called) is
3131
/// `unsafe.`
32-
///
33-
/// ## Zero arguments
34-
/// The given expression (which evaluates to the function to be called) is `unsafe.`
3532
#[doc(hidden)]
3633
#[macro_export]
3734
macro_rules! internal_prudent_unsafe_fn {
38-
( $fn:expr $(, $arg:expr)+ ) => {
35+
( $fn:expr => $( $arg:expr ),+ ) => {
3936

4037
// Enclosed in (...) and NOT in {...}. Why? Because the later does NOT work if the result is
4138
// an array/slice and then it's indexed with array access suffix [usize_idx].
@@ -193,7 +190,18 @@ macro_rules! internal_prudent_unsafe_method {
193190
(
194191
$( ~allow_unsafe $( { $allow_unsafe_empty_indicator:tt } )? )?
195192
$( ~expect_unsafe $( { $expect_unsafe_empty_indicator:tt } )? )?
196-
$self:expr, $fn:ident $(, $arg:expr )*
193+
$self:expr =>@ $fn:ident
194+
) => {
195+
unsafe_method!(
196+
$( ~allow_unsafe $( { $allow_unsafe_empty_indicator } )? )?
197+
$( ~expect_unsafe $( { $expect_unsafe_empty_indicator } )? )?
198+
$self =>@ $fn =>
199+
)
200+
};
201+
(
202+
$( ~allow_unsafe $( { $allow_unsafe_empty_indicator:tt } )? )?
203+
$( ~expect_unsafe $( { $expect_unsafe_empty_indicator:tt } )? )?
204+
$self:expr =>@ $fn:ident => $( $arg:expr ),*
197205
) => {
198206
// See unsafe_fn for why here we enclose in (...) and not in {...}.
199207
(

src/linted_with_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ pub use crate::linted_untested::PRUDENT_INTERNAL_LINTED_VERSION;
9999
///
100100
/// fn main() {
101101
/// let mut marray = [true];
102-
/// unsafe_fn!( return_same_mut_ref, &mut marray )[0] = true;
102+
/// unsafe_fn!( return_same_mut_ref => &mut marray )[0] = true;
103103
/// }
104104
/// ```
105105
#[doc(inline)]

violations_coverage/unsafe_fn/fn_unused_unsafe/some_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ use crate::prudent::*;
44
fn safe_fn_one_arg(_: bool) {}
55

66
fn main() {
7-
unsafe_fn!(safe_fn_one_arg, true);
7+
unsafe_fn!(safe_fn_one_arg=> true);
88
}

violations_coverage/unsafe_fn/sneaked_unsafe/arg.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ unsafe fn add_three(left: u64, middle: u64, right: u64) -> u64 {
77

88
fn main() {
99
unsafe_fn!(
10-
add_three,
10+
add_three=>
1111
1,
1212
{
1313
let _ = core::str::from_utf8_unchecked(b"G'Day");

violations_coverage/unsafe_fn/sneaked_unsafe/fn_expr_some_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ unsafe fn get_fn_itself() -> unsafe fn(b: bool) -> bool {
1010
}
1111

1212
fn main() {
13-
unsafe_fn!(get_fn_itself(), true);
13+
unsafe_fn!(get_fn_itself() => true);
1414
}

violations_coverage/unsafe_method/fn_unused_unsafe/some_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ impl S {
88

99
fn main() {
1010
let s = S;
11-
unsafe_method!(s, use_it, true);
11+
unsafe_method!(s =>@ use_it => true);
1212
}

violations_coverage/unsafe_method/fn_unused_unsafe/zero_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
use crate::prudent::*;
33

44
fn main() {
5-
let _ = unsafe_method!("hi", len);
5+
let _ = unsafe_method!("hi" =>@ len);
66
}

violations_coverage/unsafe_method/sneaked_unsafe/arg.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
use crate::prudent::*;
33

44
fn main() {
5-
let _ = unsafe_method!(1u8, unchecked_add, 0u8.unchecked_add(0));
5+
let _ = unsafe_method!(1u8 =>@ unchecked_add => 0u8.unchecked_add(0));
66
}

violations_coverage/unsafe_method/sneaked_unsafe/self_some_args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
use crate::prudent::*;
33

44
fn main() {
5-
let _ = unsafe_method!(0u8.unchecked_add(0), unchecked_add, 0);
5+
let _ = unsafe_method!(0u8.unchecked_add(0) =>@ unchecked_add => 0);
66
}

0 commit comments

Comments
 (0)