Skip to content

Commit 77f1358

Browse files
committed
Allow an optional comma after each argument to msg_send!
This makes the syntax match Rust expectations a bit closer IMO
1 parent d05ead9 commit 77f1358

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

objc2/src/macros.rs

+7-5
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@ method's argument's encoding does not match the encoding of the given arguments.
9393
let obj: *mut Object;
9494
# let obj: *mut Object = 0 as *mut Object;
9595
let description: *const Object = msg_send![obj, description];
96-
let _: () = msg_send![obj, setArg1:1 arg2:2];
96+
let _: () = msg_send![obj, setArg1: 1 arg2: 2];
97+
// Or with an optional comma between arguments:
98+
let _: () = msg_send![obj, setArg1: 1, arg2: 2];
9799
# }
98100
```
99101
*/
@@ -108,10 +110,10 @@ macro_rules! msg_send {
108110
}
109111
result
110112
});
111-
(super($obj:expr, $superclass:expr), $($name:ident : $arg:expr)+) => ({
113+
(super($obj:expr, $superclass:expr), $($name:ident : $arg:expr $(,)?)+) => ({
112114
let sel = $crate::sel!($($name:)+);
113115
let result;
114-
match $crate::MessageReceiver::send_super_message(&$obj, $superclass, sel, ($($arg,)*)) {
116+
match $crate::MessageReceiver::send_super_message(&$obj, $superclass, sel, ($($arg,)+)) {
115117
Err(s) => panic!("{}", s),
116118
Ok(r) => result = r,
117119
}
@@ -126,10 +128,10 @@ macro_rules! msg_send {
126128
}
127129
result
128130
});
129-
($obj:expr, $($name:ident : $arg:expr)+) => ({
131+
($obj:expr, $($name:ident : $arg:expr $(,)?)+) => ({
130132
let sel = $crate::sel!($($name:)+);
131133
let result;
132-
match $crate::MessageReceiver::send_message(&$obj, sel, ($($arg,)*)) {
134+
match $crate::MessageReceiver::send_message(&$obj, sel, ($($arg,)+)) {
133135
Err(s) => panic!("{}", s),
134136
Ok(r) => result = r,
135137
}

0 commit comments

Comments
 (0)