Skip to content

Commit d371484

Browse files
Merge pull request tristanhimmelman#1081 from emrcftci/master
Upgrade Swift 5 & fix warnings
2 parents 5804d54 + 5ab8f3c commit d371484

File tree

6 files changed

+41
-35
lines changed

6 files changed

+41
-35
lines changed

ObjectMapper.xcodeproj/project.pbxproj

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -728,11 +728,11 @@
728728
};
729729
6AAC8F7519F03C2900E7A677 = {
730730
CreatedOnToolsVersion = 6.0.1;
731-
LastSwiftMigration = 0900;
731+
LastSwiftMigration = 1120;
732732
};
733733
6AAC8F8019F03C2900E7A677 = {
734734
CreatedOnToolsVersion = 6.0.1;
735-
LastSwiftMigration = 0900;
735+
LastSwiftMigration = 1120;
736736
};
737737
CD1602FE1AC023D5000CD69A = {
738738
CreatedOnToolsVersion = 6.2;
@@ -1108,7 +1108,7 @@
11081108
PRODUCT_NAME = "$(PROJECT_NAME)";
11091109
SDKROOT = appletvos;
11101110
SKIP_INSTALL = YES;
1111-
SWIFT_VERSION = 4.2;
1111+
SWIFT_VERSION = 5.0;
11121112
TARGETED_DEVICE_FAMILY = 3;
11131113
TVOS_DEPLOYMENT_TARGET = 9.0;
11141114
WATCHOS_DEPLOYMENT_TARGET = 2.0;
@@ -1137,7 +1137,7 @@
11371137
PRODUCT_NAME = "$(PROJECT_NAME)";
11381138
SDKROOT = appletvos;
11391139
SKIP_INSTALL = YES;
1140-
SWIFT_VERSION = 4.2;
1140+
SWIFT_VERSION = 5.0;
11411141
TARGETED_DEVICE_FAMILY = 3;
11421142
TVOS_DEPLOYMENT_TARGET = 9.0;
11431143
WATCHOS_DEPLOYMENT_TARGET = 2.0;
@@ -1156,7 +1156,7 @@
11561156
PRODUCT_BUNDLE_IDENTIFIER = "com.tristanhimmelman.ObjectMapper-tvOSTests";
11571157
PRODUCT_NAME = "$(TARGET_NAME)";
11581158
SDKROOT = appletvos;
1159-
SWIFT_VERSION = 4.2;
1159+
SWIFT_VERSION = 5.0;
11601160
TVOS_DEPLOYMENT_TARGET = 9.0;
11611161
};
11621162
name = Debug;
@@ -1174,7 +1174,7 @@
11741174
PRODUCT_BUNDLE_IDENTIFIER = "com.tristanhimmelman.ObjectMapper-tvOSTests";
11751175
PRODUCT_NAME = "$(TARGET_NAME)";
11761176
SDKROOT = appletvos;
1177-
SWIFT_VERSION = 4.2;
1177+
SWIFT_VERSION = 5.0;
11781178
TVOS_DEPLOYMENT_TARGET = 9.0;
11791179
};
11801180
name = Release;
@@ -1200,7 +1200,7 @@
12001200
PRODUCT_NAME = "$(PROJECT_NAME)";
12011201
SDKROOT = watchos;
12021202
SKIP_INSTALL = YES;
1203-
SWIFT_VERSION = 4.2;
1203+
SWIFT_VERSION = 5.0;
12041204
TARGETED_DEVICE_FAMILY = 4;
12051205
TVOS_DEPLOYMENT_TARGET = 9.0;
12061206
WATCHOS_DEPLOYMENT_TARGET = 2.0;
@@ -1228,7 +1228,7 @@
12281228
PRODUCT_NAME = "$(PROJECT_NAME)";
12291229
SDKROOT = watchos;
12301230
SKIP_INSTALL = YES;
1231-
SWIFT_VERSION = 4.2;
1231+
SWIFT_VERSION = 5.0;
12321232
TARGETED_DEVICE_FAMILY = 4;
12331233
TVOS_DEPLOYMENT_TARGET = 9.0;
12341234
WATCHOS_DEPLOYMENT_TARGET = 2.0;
@@ -1363,8 +1363,7 @@
13631363
PRODUCT_BUNDLE_IDENTIFIER = "com.tristanhimmelman.$(PRODUCT_NAME:rfc1034identifier)";
13641364
PRODUCT_NAME = "$(PROJECT_NAME)";
13651365
SKIP_INSTALL = YES;
1366-
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
1367-
SWIFT_VERSION = 4.2;
1366+
SWIFT_VERSION = 5.0;
13681367
TVOS_DEPLOYMENT_TARGET = 9.0;
13691368
WATCHOS_DEPLOYMENT_TARGET = 2.0;
13701369
};
@@ -1385,8 +1384,7 @@
13851384
PRODUCT_BUNDLE_IDENTIFIER = "com.tristanhimmelman.$(PRODUCT_NAME:rfc1034identifier)";
13861385
PRODUCT_NAME = "$(PROJECT_NAME)";
13871386
SKIP_INSTALL = YES;
1388-
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
1389-
SWIFT_VERSION = 4.2;
1387+
SWIFT_VERSION = 5.0;
13901388
TVOS_DEPLOYMENT_TARGET = 9.0;
13911389
WATCHOS_DEPLOYMENT_TARGET = 2.0;
13921390
};
@@ -1404,8 +1402,7 @@
14041402
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
14051403
PRODUCT_BUNDLE_IDENTIFIER = "com.heart.$(PRODUCT_NAME:rfc1034identifier)";
14061404
PRODUCT_NAME = "$(TARGET_NAME)";
1407-
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
1408-
SWIFT_VERSION = 4.0;
1405+
SWIFT_VERSION = 5.0;
14091406
};
14101407
name = Debug;
14111408
};
@@ -1417,8 +1414,7 @@
14171414
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
14181415
PRODUCT_BUNDLE_IDENTIFIER = "com.heart.$(PRODUCT_NAME:rfc1034identifier)";
14191416
PRODUCT_NAME = "$(TARGET_NAME)";
1420-
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
1421-
SWIFT_VERSION = 4.0;
1417+
SWIFT_VERSION = 5.0;
14221418
};
14231419
name = Release;
14241420
};
@@ -1446,7 +1442,7 @@
14461442
PRODUCT_NAME = "$(PROJECT_NAME)";
14471443
SDKROOT = macosx;
14481444
SKIP_INSTALL = YES;
1449-
SWIFT_VERSION = 4.2;
1445+
SWIFT_VERSION = 5.0;
14501446
TVOS_DEPLOYMENT_TARGET = 9.0;
14511447
WATCHOS_DEPLOYMENT_TARGET = 2.0;
14521448
};
@@ -1474,7 +1470,7 @@
14741470
PRODUCT_NAME = "$(PROJECT_NAME)";
14751471
SDKROOT = macosx;
14761472
SKIP_INSTALL = YES;
1477-
SWIFT_VERSION = 4.2;
1473+
SWIFT_VERSION = 5.0;
14781474
TVOS_DEPLOYMENT_TARGET = 9.0;
14791475
WATCHOS_DEPLOYMENT_TARGET = 2.0;
14801476
};
@@ -1495,7 +1491,7 @@
14951491
PRODUCT_BUNDLE_IDENTIFIER = "com.heart.$(PRODUCT_NAME:rfc1034identifier)";
14961492
PRODUCT_NAME = "$(TARGET_NAME)";
14971493
SDKROOT = macosx;
1498-
SWIFT_VERSION = 4.2;
1494+
SWIFT_VERSION = 5.0;
14991495
};
15001496
name = Debug;
15011497
};
@@ -1512,7 +1508,7 @@
15121508
PRODUCT_BUNDLE_IDENTIFIER = "com.heart.$(PRODUCT_NAME:rfc1034identifier)";
15131509
PRODUCT_NAME = "$(TARGET_NAME)";
15141510
SDKROOT = macosx;
1515-
SWIFT_VERSION = 4.2;
1511+
SWIFT_VERSION = 5.0;
15161512
};
15171513
name = Release;
15181514
};
@@ -1536,7 +1532,7 @@
15361532
PRODUCT_NAME = ObjectMapper;
15371533
SDKROOT = macosx;
15381534
SKIP_INSTALL = YES;
1539-
SWIFT_VERSION = 4.2;
1535+
SWIFT_VERSION = 5.0;
15401536
};
15411537
name = Debug;
15421538
};
@@ -1561,7 +1557,7 @@
15611557
PRODUCT_NAME = ObjectMapper;
15621558
SDKROOT = macosx;
15631559
SKIP_INSTALL = YES;
1564-
SWIFT_VERSION = 4.2;
1560+
SWIFT_VERSION = 5.0;
15651561
};
15661562
name = Release;
15671563
};
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>IDEDidComputeMac32BitWarning</key>
6+
<true/>
7+
</dict>
8+
</plist>

Tests/ObjectMapperTests/ImmutableTests.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,12 +201,12 @@ class ImmutableObjectTests: XCTestCase {
201201
XCTAssertEqual(immutable.delimiterNestedDictionary, ["a": 10, "b": 20, "c": 30])
202202

203203
let JSON2: [String: Any] = [ "prop1": "prop1", "prop2": NSNull() ]
204-
let immutable2 = try? mapper.map(JSON: JSON2)
204+
let immutable2 = try? mapper.map(JSON: JSON2) as Struct
205205
XCTAssertNil(immutable2)
206206

207207
// TODO: ImmutableMappable to JSON
208208
let JSONFromObject = mapper.toJSON(immutable)
209-
let objectFromJSON = try? mapper.map(JSON: JSONFromObject)
209+
let objectFromJSON = try? mapper.map(JSON: JSONFromObject) as Struct
210210
XCTAssertNotNil(objectFromJSON)
211211
assertImmutableObjectsEqual(objectFromJSON!, immutable)
212212
}

Tests/ObjectMapperTests/MapContextTests.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ class MapContextTests: XCTestCase {
138138
let JSON = ["name": "Anton"]
139139
let context = ImmutableContext(isDeveloper: true)
140140

141-
let person = try? Mapper<ImmutablePerson>(context: context).map(JSON: JSON)
141+
let person = try? Mapper<ImmutablePerson>(context: context).map(JSON: JSON) as ImmutablePerson
142142

143143
XCTAssertNotNil(person)
144144

@@ -149,7 +149,7 @@ class MapContextTests: XCTestCase {
149149
let JSON = ["name": "Anton"]
150150
let context = ImmutableContext(isDeveloper: true)
151151

152-
let person = try? ImmutablePerson(JSON: JSON, context: context)
152+
let person = try? ImmutablePerson(JSON: JSON, context: context) as ImmutablePerson
153153

154154
XCTAssertNotNil(person)
155155
XCTAssertEqual(person?.isDeveloper ?? !context.isDeveloper, context.isDeveloper)
@@ -172,7 +172,7 @@ class MapContextTests: XCTestCase {
172172
let JSON = ["person": ["name": "Anton"]]
173173
let context = ImmutableContext(isDeveloper: true)
174174

175-
let nestedPerson = try? Mapper<ImmutableNestedPerson>(context: context).map(JSON: JSON)
175+
let nestedPerson = try? Mapper<ImmutableNestedPerson>(context: context).map(JSON: JSON) as ImmutableNestedPerson
176176

177177
XCTAssertNotNil(nestedPerson)
178178
XCTAssertEqual(nestedPerson?.person.isDeveloper ?? !context.isDeveloper, context.isDeveloper)
@@ -182,7 +182,7 @@ class MapContextTests: XCTestCase {
182182
let JSON = ["person": ["name": "Anton"]]
183183
let context = ImmutableContext(isDeveloper: true)
184184

185-
let nestedPerson = try? ImmutableNestedPerson(JSON: JSON, context: context)
185+
let nestedPerson = try? ImmutableNestedPerson(JSON: JSON, context: context) as ImmutableNestedPerson
186186

187187
XCTAssertNotNil(nestedPerson)
188188
XCTAssertEqual(nestedPerson?.person.isDeveloper ?? !context.isDeveloper, context.isDeveloper)
@@ -207,7 +207,7 @@ class MapContextTests: XCTestCase {
207207
let JSON = ["persons": [["name": "Tristan"], ["name": "Anton"]]]
208208
let context = ImmutableContext(isDeveloper: true)
209209

210-
let personList = try? Mapper<ImmutablePersonList>(context: context).map(JSON: JSON)
210+
let personList = try? Mapper<ImmutablePersonList>(context: context).map(JSON: JSON) as ImmutablePersonList
211211

212212
XCTAssertNotNil(personList)
213213

@@ -220,7 +220,7 @@ class MapContextTests: XCTestCase {
220220
let JSON = ["persons": [["name": "Tristan"], ["name": "Anton"]]]
221221
let context = ImmutableContext(isDeveloper: true)
222222

223-
let personList = try? ImmutablePersonList(JSON: JSON, context: context)
223+
let personList = try? ImmutablePersonList(JSON: JSON, context: context) as ImmutablePersonList
224224

225225
XCTAssertNotNil(personList)
226226

Tests/ObjectMapperTests/MappableExtensionsTests.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,14 @@ struct TestMappable: Mappable, Equatable, Hashable {
4444
mutating func mapping(map: Map) {
4545
value <- map["value"]
4646
}
47-
48-
var hashValue: Int {
47+
48+
49+
func hash(into hasher: inout Hasher) {
4950
if let value = value {
50-
return value.hashValue
51+
hasher.combine(value)
52+
} else {
53+
hasher.combine(NSIntegerMax)
5154
}
52-
return NSIntegerMax
5355
}
5456
}
5557

Tests/ObjectMapperTests/PerformanceTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class PerformanceTests: XCTestCase {
7171

7272
func testPerformanceImmutable() {
7373
self.measure {
74-
_ = try? Mapper<PerformanceImmutableMappableObject>().mapArray(JSONString: self.JSONTestString)
74+
_ = try? Mapper<PerformanceImmutableMappableObject>().mapArray(JSONString: self.JSONTestString) as [PerformanceImmutableMappableObject]
7575
}
7676
}
7777
}

0 commit comments

Comments
 (0)