Skip to content

Commit 1b62354

Browse files
committed
Remove ability to send messages to Option types
We actually don't want to encourage sending messages to nil objects, since that is only supported for selectors that return pointers
1 parent 4cabdb9 commit 1b62354

File tree

1 file changed

+0
-46
lines changed

1 file changed

+0
-46
lines changed

objc2/src/message/mod.rs

-46
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use alloc::string::{String, ToString};
22
use core::fmt;
33
use core::mem;
4-
use core::ptr;
54
use core::ptr::NonNull;
65
use std::error::Error;
76

@@ -78,11 +77,6 @@ pub(crate) mod private {
7877
impl<'a, T: Message + ?Sized> Sealed for &'a mut T {}
7978
impl<T: Message + ?Sized> Sealed for NonNull<T> {}
8079
impl<T: Message, O: Ownership> Sealed for Id<T, O> {}
81-
82-
impl<'a, T: Message + ?Sized> Sealed for Option<&'a T> {}
83-
impl<'a, T: Message + ?Sized> Sealed for Option<&'a mut T> {}
84-
impl<T: Message + ?Sized> Sealed for Option<NonNull<T>> {}
85-
impl<T: Message, O: Ownership> Sealed for Option<Id<T, O>> {}
8680
}
8781

8882
/// Types that can directly be used as the receiver of Objective-C messages.
@@ -239,46 +233,6 @@ unsafe impl<T: Message, O: Ownership> MessageReceiver for Id<T, O> {
239233
}
240234
}
241235

242-
unsafe impl<'a, T: Message + ?Sized> MessageReceiver for Option<&'a T> {
243-
#[inline]
244-
fn as_raw_receiver(&self) -> *mut Object {
245-
match self {
246-
None => ptr::null_mut(),
247-
Some(obj) => obj.as_raw_receiver(),
248-
}
249-
}
250-
}
251-
252-
unsafe impl<'a, T: Message + ?Sized> MessageReceiver for Option<&'a mut T> {
253-
#[inline]
254-
fn as_raw_receiver(&self) -> *mut Object {
255-
match self {
256-
None => ptr::null_mut(),
257-
Some(obj) => obj.as_raw_receiver(),
258-
}
259-
}
260-
}
261-
262-
unsafe impl<T: Message + ?Sized> MessageReceiver for Option<NonNull<T>> {
263-
#[inline]
264-
fn as_raw_receiver(&self) -> *mut Object {
265-
match self {
266-
None => ptr::null_mut(),
267-
Some(obj) => obj.as_raw_receiver(),
268-
}
269-
}
270-
}
271-
272-
unsafe impl<T: Message, O: Ownership> MessageReceiver for Option<Id<T, O>> {
273-
#[inline]
274-
fn as_raw_receiver(&self) -> *mut Object {
275-
match self {
276-
None => ptr::null_mut(),
277-
Some(id) => id.as_raw_receiver(),
278-
}
279-
}
280-
}
281-
282236
/// Types that may be used as the arguments of an Objective-C message.
283237
pub trait MessageArguments: EncodeArguments {
284238
/// Invoke an [`Imp`] with the given object, selector, and arguments.

0 commit comments

Comments
 (0)