Skip to content

Commit d285c2a

Browse files
committed
TMP
1 parent 996f48b commit d285c2a

File tree

4 files changed

+28
-9
lines changed

4 files changed

+28
-9
lines changed

objc2/src/__macro_helpers.rs

+8-2
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,10 @@ impl<T: ?Sized + Message, O: Ownership> MsgSendId<&'_ Class, T, O> for New {
107107
}
108108
}
109109

110-
impl<T: ?Sized + Message, O: Ownership> MsgSendId<&'_ Class, Allocated<T>, O> for Alloc {
110+
impl<T: ?Sized + Message, O: Ownership> MsgSendId<&'_ Class, Allocated<T>, O> for Alloc
111+
where
112+
Allocated<T>: Thin,
113+
{
111114
#[inline]
112115
#[track_caller]
113116
unsafe fn send_message_id<A: MessageArguments, R: MaybeUnwrap<Allocated<T>, O>>(
@@ -123,7 +126,10 @@ impl<T: ?Sized + Message, O: Ownership> MsgSendId<&'_ Class, Allocated<T>, O> fo
123126
}
124127
}
125128

126-
impl<T: ?Sized + Message, O: Ownership> MsgSendId<Option<Id<Allocated<T>, O>>, T, O> for Init {
129+
impl<T: ?Sized + Message, O: Ownership> MsgSendId<Option<Id<Allocated<T>, O>>, T, O> for Init
130+
where
131+
Allocated<T>: Thin,
132+
{
127133
#[inline]
128134
#[track_caller]
129135
unsafe fn send_message_id<A: MessageArguments, R: MaybeUnwrap<T, O>>(

objc2/src/foundation/array.rs

+8-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ use super::{
88
NSCopying, NSEnumerator, NSFastEnumeration, NSFastEnumerator, NSMutableArray, NSMutableCopying,
99
NSObject, NSRange,
1010
};
11-
use crate::rc::{DefaultId, Id, Owned, Ownership, Shared, SliceId};
11+
use crate::rc::{Allocated, DefaultId, Id, Owned, Ownership, Shared, SliceId};
1212
use crate::runtime::{Class, Object};
13-
use crate::{ClassType, Message, __inner_extern_class, extern_methods, msg_send, msg_send_id};
13+
use crate::{
14+
ClassType, Message, Thin, __inner_extern_class, extern_methods, msg_send, msg_send_id,
15+
};
1416

1517
__inner_extern_class!(
1618
/// An immutable ordered collection of objects.
@@ -79,7 +81,10 @@ impl<T: ?Sized + Message + UnwindSafe> UnwindSafe for NSArray<T, Owned> {}
7981
pub(crate) unsafe fn with_objects<T: ?Sized + Message, R: ?Sized + Message, O: Ownership>(
8082
cls: &Class,
8183
objects: &[&T],
82-
) -> Id<R, O> {
84+
) -> Id<R, O>
85+
where
86+
Allocated<R>: Thin,
87+
{
8388
unsafe {
8489
msg_send_id![
8590
msg_send_id![cls, alloc],

objc2/src/foundation/set.rs

+8-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ use super::{
77
NSArray, NSCopying, NSEnumerator, NSFastEnumeration, NSFastEnumerator, NSMutableCopying,
88
NSMutableSet, NSObject,
99
};
10-
use crate::rc::{DefaultId, Id, Owned, Ownership, Shared, SliceId};
10+
use crate::rc::{Allocated, DefaultId, Id, Owned, Ownership, Shared, SliceId};
1111
use crate::runtime::Class;
12-
use crate::{ClassType, Message, __inner_extern_class, extern_methods, msg_send, msg_send_id};
12+
use crate::{
13+
ClassType, Message, Thin, __inner_extern_class, extern_methods, msg_send, msg_send_id,
14+
};
1315

1416
__inner_extern_class!(
1517
/// An immutable unordered collection of unique objects.
@@ -45,7 +47,10 @@ impl<T: ?Sized + Message + UnwindSafe> UnwindSafe for NSSet<T, Owned> {}
4547
pub(crate) unsafe fn with_objects<T: ?Sized + Message, R: ?Sized + Message, O: Ownership>(
4648
cls: &Class,
4749
objects: &[&T],
48-
) -> Id<R, O> {
50+
) -> Id<R, O>
51+
where
52+
Allocated<R>: Thin,
53+
{
4954
unsafe {
5055
msg_send_id![
5156
msg_send_id![cls, alloc],

objc2/src/rc/id.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,10 @@ impl<T: ?Sized + Thin, O: Ownership> Id<T, O> {
138138
}
139139
}
140140

141-
impl<T: ?Sized + Message, O: Ownership> Id<Allocated<T>, O> {
141+
impl<T: ?Sized + Message, O: Ownership> Id<Allocated<T>, O>
142+
where
143+
Allocated<T>: Thin,
144+
{
142145
#[inline]
143146
pub(crate) unsafe fn new_allocated(ptr: *mut T) -> Option<Self> {
144147
// SAFETY: Upheld by the caller

0 commit comments

Comments
 (0)