Skip to content

Commit e9b0236

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 e9b0236

File tree

1 file changed

+0
-45
lines changed

1 file changed

+0
-45
lines changed

objc2/src/message/mod.rs

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,6 @@ pub(crate) mod private {
7878
impl<'a, T: Message + ?Sized> Sealed for &'a mut T {}
7979
impl<T: Message + ?Sized> Sealed for NonNull<T> {}
8080
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>> {}
8681
}
8782

8883
/// Types that can directly be used as the receiver of Objective-C messages.
@@ -239,46 +234,6 @@ unsafe impl<T: Message, O: Ownership> MessageReceiver for Id<T, O> {
239234
}
240235
}
241236

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-
282237
/// Types that may be used as the arguments of an Objective-C message.
283238
pub trait MessageArguments: EncodeArguments {
284239
/// Invoke an [`Imp`] with the given object, selector, and arguments.

0 commit comments

Comments
 (0)