diff --git a/ObjectMapper.xcodeproj/project.pbxproj b/ObjectMapper.xcodeproj/project.pbxproj index 8e6e8c6d..329a283b 100644 --- a/ObjectMapper.xcodeproj/project.pbxproj +++ b/ObjectMapper.xcodeproj/project.pbxproj @@ -728,11 +728,11 @@ }; 6AAC8F7519F03C2900E7A677 = { CreatedOnToolsVersion = 6.0.1; - LastSwiftMigration = 0900; + LastSwiftMigration = 1120; }; 6AAC8F8019F03C2900E7A677 = { CreatedOnToolsVersion = 6.0.1; - LastSwiftMigration = 0900; + LastSwiftMigration = 1120; }; CD1602FE1AC023D5000CD69A = { CreatedOnToolsVersion = 6.2; @@ -1108,7 +1108,7 @@ PRODUCT_NAME = "$(PROJECT_NAME)"; SDKROOT = appletvos; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; @@ -1137,7 +1137,7 @@ PRODUCT_NAME = "$(PROJECT_NAME)"; SDKROOT = appletvos; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; @@ -1156,7 +1156,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.tristanhimmelman.ObjectMapper-tvOSTests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 9.0; }; name = Debug; @@ -1174,7 +1174,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.tristanhimmelman.ObjectMapper-tvOSTests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = appletvos; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 9.0; }; name = Release; @@ -1200,7 +1200,7 @@ PRODUCT_NAME = "$(PROJECT_NAME)"; SDKROOT = watchos; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 4; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; @@ -1228,7 +1228,7 @@ PRODUCT_NAME = "$(PROJECT_NAME)"; SDKROOT = watchos; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 4; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; @@ -1363,8 +1363,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.tristanhimmelman.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(PROJECT_NAME)"; SKIP_INSTALL = YES; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; @@ -1385,8 +1384,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.tristanhimmelman.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(PROJECT_NAME)"; SKIP_INSTALL = YES; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; @@ -1404,8 +1402,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.heart.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -1417,8 +1414,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.heart.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -1446,7 +1442,7 @@ PRODUCT_NAME = "$(PROJECT_NAME)"; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; @@ -1474,7 +1470,7 @@ PRODUCT_NAME = "$(PROJECT_NAME)"; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; }; @@ -1495,7 +1491,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.heart.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -1512,7 +1508,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.heart.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -1536,7 +1532,7 @@ PRODUCT_NAME = ObjectMapper; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -1561,7 +1557,7 @@ PRODUCT_NAME = ObjectMapper; SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Release; }; diff --git a/ObjectMapper.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ObjectMapper.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/ObjectMapper.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Tests/ObjectMapperTests/ImmutableTests.swift b/Tests/ObjectMapperTests/ImmutableTests.swift index bafba916..f722add1 100644 --- a/Tests/ObjectMapperTests/ImmutableTests.swift +++ b/Tests/ObjectMapperTests/ImmutableTests.swift @@ -201,12 +201,12 @@ class ImmutableObjectTests: XCTestCase { XCTAssertEqual(immutable.delimiterNestedDictionary, ["a": 10, "b": 20, "c": 30]) let JSON2: [String: Any] = [ "prop1": "prop1", "prop2": NSNull() ] - let immutable2 = try? mapper.map(JSON: JSON2) + let immutable2 = try? mapper.map(JSON: JSON2) as Struct XCTAssertNil(immutable2) // TODO: ImmutableMappable to JSON let JSONFromObject = mapper.toJSON(immutable) - let objectFromJSON = try? mapper.map(JSON: JSONFromObject) + let objectFromJSON = try? mapper.map(JSON: JSONFromObject) as Struct XCTAssertNotNil(objectFromJSON) assertImmutableObjectsEqual(objectFromJSON!, immutable) } diff --git a/Tests/ObjectMapperTests/MapContextTests.swift b/Tests/ObjectMapperTests/MapContextTests.swift index bc6c4ace..3bf4e250 100644 --- a/Tests/ObjectMapperTests/MapContextTests.swift +++ b/Tests/ObjectMapperTests/MapContextTests.swift @@ -138,7 +138,7 @@ class MapContextTests: XCTestCase { let JSON = ["name": "Anton"] let context = ImmutableContext(isDeveloper: true) - let person = try? Mapper(context: context).map(JSON: JSON) + let person = try? Mapper(context: context).map(JSON: JSON) as ImmutablePerson XCTAssertNotNil(person) @@ -149,7 +149,7 @@ class MapContextTests: XCTestCase { let JSON = ["name": "Anton"] let context = ImmutableContext(isDeveloper: true) - let person = try? ImmutablePerson(JSON: JSON, context: context) + let person = try? ImmutablePerson(JSON: JSON, context: context) as ImmutablePerson XCTAssertNotNil(person) XCTAssertEqual(person?.isDeveloper ?? !context.isDeveloper, context.isDeveloper) @@ -172,7 +172,7 @@ class MapContextTests: XCTestCase { let JSON = ["person": ["name": "Anton"]] let context = ImmutableContext(isDeveloper: true) - let nestedPerson = try? Mapper(context: context).map(JSON: JSON) + let nestedPerson = try? Mapper(context: context).map(JSON: JSON) as ImmutableNestedPerson XCTAssertNotNil(nestedPerson) XCTAssertEqual(nestedPerson?.person.isDeveloper ?? !context.isDeveloper, context.isDeveloper) @@ -182,7 +182,7 @@ class MapContextTests: XCTestCase { let JSON = ["person": ["name": "Anton"]] let context = ImmutableContext(isDeveloper: true) - let nestedPerson = try? ImmutableNestedPerson(JSON: JSON, context: context) + let nestedPerson = try? ImmutableNestedPerson(JSON: JSON, context: context) as ImmutableNestedPerson XCTAssertNotNil(nestedPerson) XCTAssertEqual(nestedPerson?.person.isDeveloper ?? !context.isDeveloper, context.isDeveloper) @@ -207,7 +207,7 @@ class MapContextTests: XCTestCase { let JSON = ["persons": [["name": "Tristan"], ["name": "Anton"]]] let context = ImmutableContext(isDeveloper: true) - let personList = try? Mapper(context: context).map(JSON: JSON) + let personList = try? Mapper(context: context).map(JSON: JSON) as ImmutablePersonList XCTAssertNotNil(personList) @@ -220,7 +220,7 @@ class MapContextTests: XCTestCase { let JSON = ["persons": [["name": "Tristan"], ["name": "Anton"]]] let context = ImmutableContext(isDeveloper: true) - let personList = try? ImmutablePersonList(JSON: JSON, context: context) + let personList = try? ImmutablePersonList(JSON: JSON, context: context) as ImmutablePersonList XCTAssertNotNil(personList) diff --git a/Tests/ObjectMapperTests/MappableExtensionsTests.swift b/Tests/ObjectMapperTests/MappableExtensionsTests.swift index b885cf1f..d3ee7960 100644 --- a/Tests/ObjectMapperTests/MappableExtensionsTests.swift +++ b/Tests/ObjectMapperTests/MappableExtensionsTests.swift @@ -44,12 +44,14 @@ struct TestMappable: Mappable, Equatable, Hashable { mutating func mapping(map: Map) { value <- map["value"] } - - var hashValue: Int { + + + func hash(into hasher: inout Hasher) { if let value = value { - return value.hashValue + hasher.combine(value) + } else { + hasher.combine(NSIntegerMax) } - return NSIntegerMax } } diff --git a/Tests/ObjectMapperTests/PerformanceTests.swift b/Tests/ObjectMapperTests/PerformanceTests.swift index 6e0620ba..fa2819be 100644 --- a/Tests/ObjectMapperTests/PerformanceTests.swift +++ b/Tests/ObjectMapperTests/PerformanceTests.swift @@ -71,7 +71,7 @@ class PerformanceTests: XCTestCase { func testPerformanceImmutable() { self.measure { - _ = try? Mapper().mapArray(JSONString: self.JSONTestString) + _ = try? Mapper().mapArray(JSONString: self.JSONTestString) as [PerformanceImmutableMappableObject] } } }