Skip to content

Commit 7358162

Browse files
committed
Merge updates from version 0.2.7
2 parents 39a6d52 + 858f92f commit 7358162

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
## 0.2.7
2+
3+
### Fixed
4+
5+
* Uses of `msg_send!` will now correctly fail to compile if no return type
6+
can be inferred, instead of relying on an edge case of the compiler
7+
that will soon change and silently cause undefined behavior.
8+
19
## 0.2.6
210

311
### Fixed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "objc"
3-
version = "0.2.6"
3+
version = "0.2.7"
44
authors = ["Steven Sheldon"]
55
edition = "2018"
66

src/macros.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,30 +80,38 @@ let _: () = msg_send![obj, setArg1:1 arg2:2];
8080
macro_rules! msg_send {
8181
(super($obj:expr, $superclass:expr), $name:ident) => ({
8282
let sel = $crate::sel!($name);
83+
let result;
8384
match $crate::__send_super_message(&*$obj, $superclass, sel, ()) {
8485
Err(s) => panic!("{}", s),
85-
Ok(r) => r,
86+
Ok(r) => result = r,
8687
}
88+
result
8789
});
8890
(super($obj:expr, $superclass:expr), $($name:ident : $arg:expr)+) => ({
8991
let sel = $crate::sel!($($name:)+);
92+
let result;
9093
match $crate::__send_super_message(&*$obj, $superclass, sel, ($($arg,)*)) {
9194
Err(s) => panic!("{}", s),
92-
Ok(r) => r,
95+
Ok(r) => result = r,
9396
}
97+
result
9498
});
9599
($obj:expr, $name:ident) => ({
96100
let sel = $crate::sel!($name);
101+
let result;
97102
match $crate::__send_message(&*$obj, sel, ()) {
98103
Err(s) => panic!("{}", s),
99-
Ok(r) => r,
104+
Ok(r) => result = r,
100105
}
106+
result
101107
});
102108
($obj:expr, $($name:ident : $arg:expr)+) => ({
103109
let sel = $crate::sel!($($name:)+);
110+
let result;
104111
match $crate::__send_message(&*$obj, sel, ($($arg,)*)) {
105112
Err(s) => panic!("{}", s),
106-
Ok(r) => r,
113+
Ok(r) => result = r,
107114
}
115+
result
108116
});
109117
}

0 commit comments

Comments
 (0)