Skip to content

Commit dec0d9c

Browse files
committed
Removed lots of type annotations.
Now possible thanks to rust-lang/rust#22172
1 parent 2f40a53 commit dec0d9c

File tree

9 files changed

+66
-74
lines changed

9 files changed

+66
-74
lines changed

array.rs

+18-19
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ pub trait INSArray : INSObject {
9090
}
9191

9292
unsafe fn from_refs(refs: &[&Self::Item]) -> Id<Self> {
93-
let cls = <Self as INSObject>::class();
93+
let cls = Self::class();
9494
let obj: *mut Self = msg_send![cls, alloc];
9595
let obj: *mut Self = msg_send![obj, initWithObjects:refs.as_ptr()
9696
count:refs.len()];
@@ -106,7 +106,7 @@ pub trait INSArray : INSObject {
106106

107107
fn objects_in_range(&self, range: Range<usize>) -> Vec<&Self::Item> {
108108
let range = NSRange::from_range(range);
109-
let mut vec: Vec<&Self::Item> = Vec::with_capacity(range.length);
109+
let mut vec = Vec::with_capacity(range.length);
110110
unsafe {
111111
let _: () = msg_send![self, getObjects:vec.as_ptr() range:range];
112112
vec.set_len(range.length);
@@ -326,16 +326,16 @@ mod tests {
326326
use super::{INSArray, INSMutableArray, NSArray, NSMutableArray};
327327

328328
fn sample_array(len: usize) -> Id<NSArray<NSObject>> {
329-
let mut vec: Vec<Id<NSObject>> = Vec::with_capacity(len);
329+
let mut vec = Vec::with_capacity(len);
330330
for _ in 0..len {
331-
vec.push(INSObject::new());
331+
vec.push(NSObject::new());
332332
}
333-
INSArray::from_vec(vec)
333+
NSArray::from_vec(vec)
334334
}
335335

336336
#[test]
337337
fn test_count() {
338-
let empty_array: Id<NSArray<NSObject>> = INSObject::new();
338+
let empty_array = NSArray::<NSObject>::new();
339339
assert!(empty_array.count() == 0);
340340

341341
let array = sample_array(4);
@@ -390,35 +390,34 @@ mod tests {
390390

391391
#[test]
392392
fn test_add_object() {
393-
let mut array: Id<NSMutableArray<NSObject>> = INSObject::new();
394-
let obj: Id<NSObject> = INSObject::new();
393+
let mut array = NSMutableArray::new();
394+
let obj = NSObject::new();
395395
array.add_object(obj);
396396

397397
assert!(array.count() == 1);
398398
assert!(array.object_at(0) == array.object_at(0));
399399

400-
let obj: Id<NSObject> = INSObject::new();
400+
let obj = NSObject::new();
401401
array.insert_object_at(0, obj);
402402
assert!(array.count() == 2);
403403
}
404404

405405
#[test]
406406
fn test_replace_object() {
407-
let mut array: Id<NSMutableArray<NSObject>> = INSObject::new();
408-
let obj: Id<NSObject> = INSObject::new();
407+
let mut array = NSMutableArray::new();
408+
let obj = NSObject::new();
409409
array.add_object(obj);
410410

411-
let obj: Id<NSObject> = INSObject::new();
411+
let obj = NSObject::new();
412412
let old_obj = array.replace_object_at(0, obj);
413413
assert!(&*old_obj != array.object_at(0));
414414
}
415415

416416
#[test]
417417
fn test_remove_object() {
418-
let mut array: Id<NSMutableArray<NSObject>> = INSObject::new();
418+
let mut array = NSMutableArray::new();
419419
for _ in 0..4 {
420-
let obj: Id<NSObject> = INSObject::new();
421-
array.add_object(obj);
420+
array.add_object(NSObject::new());
422421
}
423422

424423
array.remove_object_at(1);
@@ -433,11 +432,11 @@ mod tests {
433432

434433
#[test]
435434
fn test_sort() {
436-
let strings: Vec<Id<NSString>> = vec![
437-
INSString::from_str("hello"),
438-
INSString::from_str("hi"),
435+
let strings = vec![
436+
NSString::from_str("hello"),
437+
NSString::from_str("hi"),
439438
];
440-
let mut strings: Id<NSMutableArray<_>> = INSArray::from_vec(strings);
439+
let mut strings = NSMutableArray::from_vec(strings);
441440

442441
strings.sort_by(|s1, s2| s1.as_str().len().cmp(&s2.as_str().len()));
443442
assert!(strings[0].as_str() == "hi");

data.rs

+9-10
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ pub trait INSData : INSObject {
2828
}
2929

3030
fn with_bytes(bytes: &[u8]) -> Id<Self> {
31-
let cls = <Self as INSObject>::class();
31+
let cls = Self::class();
3232
unsafe {
3333
let obj: *mut Self = msg_send![cls, alloc];
3434
let obj: *mut Self = msg_send![obj, initWithBytes:bytes.as_ptr()
@@ -47,7 +47,7 @@ pub trait INSData : INSObject {
4747
let dealloc: &mut Block<(*mut c_void, usize), ()> = &mut dealloc;
4848

4949
let mut bytes = bytes;
50-
let cls = <Self as INSObject>::class();
50+
let cls = Self::class();
5151
unsafe {
5252
let obj: *mut Self = msg_send![cls, alloc];
5353
let obj: *mut Self = msg_send![obj, initWithBytesNoCopy:bytes.as_mut_ptr()
@@ -129,34 +129,33 @@ impl INSMutableCopying for NSMutableData {
129129

130130
#[cfg(test)]
131131
mod tests {
132-
use objc::Id;
133132
use INSObject;
134133
use super::{INSData, INSMutableData, NSData, NSMutableData};
135134

136135
#[test]
137136
fn test_bytes() {
138137
let bytes = [3, 7, 16, 52, 112, 19];
139-
let data: Id<NSData> = INSData::with_bytes(&bytes);
138+
let data = NSData::with_bytes(&bytes);
140139
assert!(data.len() == bytes.len());
141140
assert!(data.bytes() == bytes);
142141
}
143142

144143
#[test]
145144
fn test_no_bytes() {
146-
let data: Id<NSData> = INSObject::new();
145+
let data = NSData::new();
147146
assert!(Some(data.bytes()).is_some());
148147
}
149148

150149
#[test]
151150
fn test_bytes_mut() {
152-
let mut data: Id<NSMutableData> = INSData::with_bytes(&[7, 16]);
151+
let mut data = NSMutableData::with_bytes(&[7, 16]);
153152
data.bytes_mut()[0] = 3;
154153
assert!(data.bytes() == [3, 16]);
155154
}
156155

157156
#[test]
158157
fn test_set_len() {
159-
let mut data: Id<NSMutableData> = INSData::with_bytes(&[7, 16]);
158+
let mut data = NSMutableData::with_bytes(&[7, 16]);
160159
data.set_len(4);
161160
assert!(data.len() == 4);
162161
assert!(data.bytes() == [7, 16, 0, 0]);
@@ -168,15 +167,15 @@ mod tests {
168167

169168
#[test]
170169
fn test_append() {
171-
let mut data: Id<NSMutableData> = INSData::with_bytes(&[7, 16]);
170+
let mut data = NSMutableData::with_bytes(&[7, 16]);
172171
data.append(&[3, 52]);
173172
assert!(data.len() == 4);
174173
assert!(data.bytes() == [7, 16, 3, 52]);
175174
}
176175

177176
#[test]
178177
fn test_replace() {
179-
let mut data: Id<NSMutableData> = INSData::with_bytes(&[7, 16]);
178+
let mut data = NSMutableData::with_bytes(&[7, 16]);
180179
data.replace_range(0..0, &[3]);
181180
assert!(data.bytes() == [3, 7, 16]);
182181

@@ -195,7 +194,7 @@ mod tests {
195194
let bytes = vec![3, 7, 16];
196195
let bytes_ptr = bytes.as_ptr();
197196

198-
let data: Id<NSData> = INSData::from_vec(bytes);
197+
let data = NSData::from_vec(bytes);
199198
assert!(data.bytes().as_ptr() == bytes_ptr);
200199
}
201200
}

dictionary.rs

+10-10
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ pub trait INSDictionary : INSObject {
3131

3232
fn keys(&self) -> Vec<&Self::Key> {
3333
let len = self.count();
34-
let mut keys: Vec<&Self::Key> = Vec::with_capacity(len);
34+
let mut keys = Vec::with_capacity(len);
3535
unsafe {
3636
let _: () = msg_send![self, getObjects:ptr::null_mut::<Self::Value>()
3737
andKeys:keys.as_mut_ptr()];
@@ -42,7 +42,7 @@ pub trait INSDictionary : INSObject {
4242

4343
fn values(&self) -> Vec<&Self::Value> {
4444
let len = self.count();
45-
let mut vals: Vec<&Self::Value> = Vec::with_capacity(len);
45+
let mut vals = Vec::with_capacity(len);
4646
unsafe {
4747
let _: () = msg_send![self, getObjects:vals.as_mut_ptr()
4848
andKeys:ptr::null_mut::<Self::Key>()];
@@ -53,8 +53,8 @@ pub trait INSDictionary : INSObject {
5353

5454
fn keys_and_objects(&self) -> (Vec<&Self::Key>, Vec<&Self::Value>) {
5555
let len = self.count();
56-
let mut keys: Vec<&Self::Key> = Vec::with_capacity(len);
57-
let mut objs: Vec<&Self::Value> = Vec::with_capacity(len);
56+
let mut keys = Vec::with_capacity(len);
57+
let mut objs = Vec::with_capacity(len);
5858
unsafe {
5959
let _: () = msg_send![self, getObjects:objs.as_mut_ptr()
6060
andKeys:keys.as_mut_ptr()];
@@ -87,7 +87,7 @@ pub trait INSDictionary : INSObject {
8787

8888
unsafe fn from_refs<T>(keys: &[&T], vals: &[&Self::Value]) -> Id<Self>
8989
where T: INSCopying<Output=Self::Key> {
90-
let cls = <Self as INSObject>::class();
90+
let cls = Self::class();
9191
let count = min(keys.len(), vals.len());
9292
let obj: *mut Self = msg_send![cls, alloc];
9393
let obj: *mut Self = msg_send![obj, initWithObjects:vals.as_ptr()
@@ -153,9 +153,9 @@ mod tests {
153153
use super::{INSDictionary, NSDictionary};
154154

155155
fn sample_dict(key: &str) -> Id<NSDictionary<NSString, NSObject>> {
156-
let string: Id<NSString> = INSString::from_str(key);
157-
let obj: Id<NSObject> = INSObject::new();
158-
INSDictionary::from_keys_and_objects(&[&*string], vec![obj])
156+
let string = NSString::from_str(key);
157+
let obj = NSObject::new();
158+
NSDictionary::from_keys_and_objects(&[&*string], vec![obj])
159159
}
160160

161161
#[test]
@@ -168,10 +168,10 @@ mod tests {
168168
fn test_object_for() {
169169
let dict = sample_dict("abcd");
170170

171-
let string: Id<NSString> = INSString::from_str("abcd");
171+
let string = NSString::from_str("abcd");
172172
assert!(dict.object_for(&string).is_some());
173173

174-
let string: Id<NSString> = INSString::from_str("abcde");
174+
let string = NSString::from_str("abcde");
175175
assert!(dict.object_for(&string).is_none());
176176
}
177177

enumerator.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -135,14 +135,13 @@ impl<'a, C: INSFastEnumeration> Iterator for NSFastEnumerator<'a, C> {
135135

136136
#[cfg(test)]
137137
mod tests {
138-
use objc::Id;
139138
use {INSArray, INSValue, NSArray, NSValue};
140139
use super::INSFastEnumeration;
141140

142141
#[test]
143142
fn test_enumerator() {
144-
let vec: Vec<Id<NSValue<u32>>> = (0..4).map(INSValue::from_value).collect();
145-
let array: Id<NSArray<_>> = INSArray::from_vec(vec);
143+
let vec = (0u32..4).map(NSValue::from_value).collect();
144+
let array = NSArray::from_vec(vec);
146145

147146
let enumerator = array.object_enumerator();
148147
assert!(enumerator.count() == 4);
@@ -153,8 +152,8 @@ mod tests {
153152

154153
#[test]
155154
fn test_fast_enumerator() {
156-
let vec: Vec<Id<NSValue<u32>>> = (0..4).map(INSValue::from_value).collect();
157-
let array: Id<NSArray<_>> = INSArray::from_vec(vec);
155+
let vec = (0u32..4).map(NSValue::from_value).collect();
156+
let array = NSArray::from_vec(vec);
158157

159158
let enumerator = array.enumerator();
160159
assert!(enumerator.count() == 4);

examples/custom_class.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ extern crate objc_foundation;
44

55
use std::sync::{Once, ONCE_INIT};
66

7-
use objc::{EncodePtr, Id, Message};
7+
use objc::{EncodePtr, Message};
88
use objc::declare::{ClassDecl, MethodDecl};
99
use objc::runtime::{Class, Object, Sel};
1010
use objc_foundation::{INSObject, NSObject};
@@ -17,7 +17,7 @@ impl MYObject {
1717
&*(self as *const _ as *const Object)
1818
};
1919
unsafe {
20-
*obj.get_ivar::<u32>("_number")
20+
*obj.get_ivar("_number")
2121
}
2222
}
2323

@@ -42,7 +42,7 @@ static MYOBJECT_REGISTER_CLASS: Once = ONCE_INIT;
4242
impl INSObject for MYObject {
4343
fn class() -> &'static Class {
4444
MYOBJECT_REGISTER_CLASS.call_once(|| {
45-
let superclass = <NSObject as INSObject>::class();
45+
let superclass = NSObject::class();
4646
let mut decl = ClassDecl::new(superclass, "MYObject").unwrap();
4747
decl.add_ivar::<u32>("_number");
4848

@@ -69,7 +69,7 @@ impl INSObject for MYObject {
6969
}
7070

7171
fn main() {
72-
let mut obj: Id<MYObject> = INSObject::new();
72+
let mut obj = MYObject::new();
7373

7474
obj.set_number(7);
7575
println!("Number: {}", unsafe {

examples/example.rs

+6-9
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,38 @@
1-
extern crate objc;
21
extern crate objc_foundation;
32

4-
use objc::Id;
53
use objc_foundation::{NSArray, NSDictionary, NSObject, NSString,
64
INSArray, INSCopying, INSDictionary, INSObject, INSString};
75

86
fn main() {
97
// Create and compare NSObjects
10-
let obj: Id<NSObject> = INSObject::new();
8+
let obj = NSObject::new();
119
println!("{:?} == {:?}? {:?}", obj, obj, obj == obj);
1210

13-
let obj2: Id<NSObject> = INSObject::new();
11+
let obj2 = NSObject::new();
1412
println!("{:?} == {:?}? {:?}", obj, obj2, obj == obj2);
1513

1614
// Create an NSArray from a Vec
1715
let objs = vec![obj, obj2];
18-
let array: Id<NSArray<NSObject>> = INSArray::from_vec(objs);
16+
let array = NSArray::from_vec(objs);
1917
for obj in array.object_enumerator() {
2018
println!("{:?}", obj);
2119
}
2220
println!("{}", array.count());
2321

2422
// Turn the NSArray back into a Vec
25-
let mut objs = INSArray::into_vec(array);
23+
let mut objs = NSArray::into_vec(array);
2624
let obj = objs.pop().unwrap();
2725

2826
// Create an NSString from a str slice
29-
let string: Id<NSString> = INSString::from_str("Hello, world!");
27+
let string = NSString::from_str("Hello, world!");
3028
println!("{}", string.as_str());
3129
let string2 = string.copy();
3230
println!("{}", string2.as_str());
3331

3432
// Create a dictionary mapping strings to objects
3533
let keys = &[&*string];
3634
let vals = vec![obj];
37-
let dict: Id<NSDictionary<NSString, NSObject>> =
38-
INSDictionary::from_keys_and_objects(keys, vals);
35+
let dict = NSDictionary::from_keys_and_objects(keys, vals);
3936
println!("{:?}", dict.object_for(&string));
4037
println!("{}", dict.count());
4138
}

0 commit comments

Comments
 (0)