Skip to content

Commit 68fdadc

Browse files
committed
Migrates to swift 4
1 parent fa3ba5d commit 68fdadc

File tree

5 files changed

+63
-50
lines changed

5 files changed

+63
-50
lines changed

Arrow.xcodeproj/project.pbxproj

+55-43
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10-
501B4F4C1DD0B95E00721F84 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 501B4F4B1DD0B95E00721F84 /* Extensions.swift */; };
1110
501B4F4E1DD0BA0800721F84 /* TypeConversionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 501B4F4D1DD0BA0800721F84 /* TypeConversionTests.swift */; };
1211
5084897D1DCB794D004BED69 /* CustomRawRepresentableContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5084897C1DCB794D004BED69 /* CustomRawRepresentableContainer.swift */; };
1312
5084897F1DCB7AD2004BED69 /* CustomRawRepresentableContainer+JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5084897E1DCB7AD2004BED69 /* CustomRawRepresentableContainer+JSON.swift */; };
1413
508489811DCB7B11004BED69 /* CustomRawRepresentableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 508489801DCB7B11004BED69 /* CustomRawRepresentableTests.swift */; };
14+
992CCA9F1F7BF81200B170C8 /* Arrow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992CCA9B1F7BF79D00B170C8 /* Arrow.swift */; };
15+
992CCAA01F7BF81600B170C8 /* JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992CCA9E1F7BF79D00B170C8 /* JSON.swift */; };
16+
992CCAA21F7BF81B00B170C8 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992CCA9C1F7BF79D00B170C8 /* Extensions.swift */; };
17+
992CCAA41F7BF8FA00B170C8 /* Arrow.h in Headers */ = {isa = PBXBuildFile; fileRef = 992CCA9A1F7BF79D00B170C8 /* Arrow.h */; settings = {ATTRIBUTES = (Public, ); }; };
1518
994243AD1CAA4F3E00B5DB6C /* Profile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994243AC1CAA4F3E00B5DB6C /* Profile.swift */; };
1619
994243AF1CAA4F4D00B5DB6C /* Stats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994243AE1CAA4F4D00B5DB6C /* Stats.swift */; };
1720
994243B11CAA502A00B5DB6C /* Profile.json in Resources */ = {isa = PBXBuildFile; fileRef = 994243B01CAA502A00B5DB6C /* Profile.json */; };
@@ -37,9 +40,6 @@
3740
998FA70A1D32713F003C7047 /* StringCoercionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 998FA7091D32713F003C7047 /* StringCoercionTests.swift */; };
3841
99C292F21B24AD5F0008C32B /* Arrow.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 99C292E71B24AD5E0008C32B /* Arrow.framework */; };
3942
99C292FB1B24AD5F0008C32B /* NativeTypesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C292FA1B24AD5F0008C32B /* NativeTypesTests.swift */; };
40-
99F4F05F1CC3FBF10018D4C1 /* JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F4F05B1CC3FBF10018D4C1 /* JSON.swift */; };
41-
99F4F0601CC3FBF10018D4C1 /* Arrow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F4F05C1CC3FBF10018D4C1 /* Arrow.swift */; };
42-
99F4F0621CC3FBF10018D4C1 /* Arrow.h in Headers */ = {isa = PBXBuildFile; fileRef = 99F4F05E1CC3FBF10018D4C1 /* Arrow.h */; settings = {ATTRIBUTES = (Public, ); }; };
4343
99F4F0671CC3FC710018D4C1 /* PhoneNumber+JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F4F0641CC3FC710018D4C1 /* PhoneNumber+JSON.swift */; };
4444
99F4F0681CC3FC710018D4C1 /* Profile+JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F4F0651CC3FC710018D4C1 /* Profile+JSON.swift */; };
4545
99F4F0691CC3FC710018D4C1 /* Stats+JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F4F0661CC3FC710018D4C1 /* Stats+JSON.swift */; };
@@ -56,11 +56,15 @@
5656
/* End PBXContainerItemProxy section */
5757

5858
/* Begin PBXFileReference section */
59-
501B4F4B1DD0B95E00721F84 /* Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Extensions.swift; path = Source/Extensions.swift; sourceTree = SOURCE_ROOT; };
6059
501B4F4D1DD0BA0800721F84 /* TypeConversionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TypeConversionTests.swift; sourceTree = "<group>"; };
6160
5084897C1DCB794D004BED69 /* CustomRawRepresentableContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomRawRepresentableContainer.swift; sourceTree = "<group>"; };
6261
5084897E1DCB7AD2004BED69 /* CustomRawRepresentableContainer+JSON.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CustomRawRepresentableContainer+JSON.swift"; sourceTree = "<group>"; };
6362
508489801DCB7B11004BED69 /* CustomRawRepresentableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomRawRepresentableTests.swift; sourceTree = "<group>"; };
63+
992CCA9A1F7BF79D00B170C8 /* Arrow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Arrow.h; sourceTree = "<group>"; };
64+
992CCA9B1F7BF79D00B170C8 /* Arrow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Arrow.swift; sourceTree = "<group>"; };
65+
992CCA9C1F7BF79D00B170C8 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = "<group>"; };
66+
992CCA9D1F7BF79D00B170C8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
67+
992CCA9E1F7BF79D00B170C8 /* JSON.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSON.swift; sourceTree = "<group>"; };
6468
994243AC1CAA4F3E00B5DB6C /* Profile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Profile.swift; sourceTree = "<group>"; };
6569
994243AE1CAA4F4D00B5DB6C /* Stats.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Stats.swift; sourceTree = "<group>"; };
6670
994243B01CAA502A00B5DB6C /* Profile.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Profile.json; sourceTree = "<group>"; };
@@ -88,10 +92,6 @@
8892
99C292F11B24AD5F0008C32B /* ArrowTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ArrowTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
8993
99C292F91B24AD5F0008C32B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9094
99C292FA1B24AD5F0008C32B /* NativeTypesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeTypesTests.swift; sourceTree = "<group>"; };
91-
99F4F05B1CC3FBF10018D4C1 /* JSON.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = JSON.swift; path = Source/JSON.swift; sourceTree = SOURCE_ROOT; };
92-
99F4F05C1CC3FBF10018D4C1 /* Arrow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Arrow.swift; path = Source/Arrow.swift; sourceTree = SOURCE_ROOT; };
93-
99F4F05D1CC3FBF10018D4C1 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Source/Info.plist; sourceTree = SOURCE_ROOT; };
94-
99F4F05E1CC3FBF10018D4C1 /* Arrow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Arrow.h; path = Source/Arrow.h; sourceTree = SOURCE_ROOT; };
9595
99F4F0641CC3FC710018D4C1 /* PhoneNumber+JSON.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "PhoneNumber+JSON.swift"; sourceTree = "<group>"; };
9696
99F4F0651CC3FC710018D4C1 /* Profile+JSON.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Profile+JSON.swift"; sourceTree = "<group>"; };
9797
99F4F0661CC3FC710018D4C1 /* Stats+JSON.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Stats+JSON.swift"; sourceTree = "<group>"; };
@@ -116,6 +116,18 @@
116116
/* End PBXFrameworksBuildPhase section */
117117

118118
/* Begin PBXGroup section */
119+
992CCA991F7BF79D00B170C8 /* Source */ = {
120+
isa = PBXGroup;
121+
children = (
122+
992CCA9A1F7BF79D00B170C8 /* Arrow.h */,
123+
992CCA9B1F7BF79D00B170C8 /* Arrow.swift */,
124+
992CCA9C1F7BF79D00B170C8 /* Extensions.swift */,
125+
992CCA9D1F7BF79D00B170C8 /* Info.plist */,
126+
992CCA9E1F7BF79D00B170C8 /* JSON.swift */,
127+
);
128+
path = Source;
129+
sourceTree = "<group>";
130+
};
119131
998FA6EE1D326945003C7047 /* Models */ = {
120132
isa = PBXGroup;
121133
children = (
@@ -137,7 +149,7 @@
137149
99C292B41B24AD4A0008C32B = {
138150
isa = PBXGroup;
139151
children = (
140-
99C292E81B24AD5E0008C32B /* Arrow */,
152+
992CCA991F7BF79D00B170C8 /* Source */,
141153
99C292F71B24AD5F0008C32B /* ArrowTests */,
142154
99C292BE1B24AD4A0008C32B /* Products */,
143155
);
@@ -152,26 +164,6 @@
152164
name = Products;
153165
sourceTree = "<group>";
154166
};
155-
99C292E81B24AD5E0008C32B /* Arrow */ = {
156-
isa = PBXGroup;
157-
children = (
158-
99F4F05B1CC3FBF10018D4C1 /* JSON.swift */,
159-
99F4F05C1CC3FBF10018D4C1 /* Arrow.swift */,
160-
501B4F4B1DD0B95E00721F84 /* Extensions.swift */,
161-
99F4F05E1CC3FBF10018D4C1 /* Arrow.h */,
162-
99C292E91B24AD5E0008C32B /* Supporting Files */,
163-
);
164-
path = Arrow;
165-
sourceTree = "<group>";
166-
};
167-
99C292E91B24AD5E0008C32B /* Supporting Files */ = {
168-
isa = PBXGroup;
169-
children = (
170-
99F4F05D1CC3FBF10018D4C1 /* Info.plist */,
171-
);
172-
name = "Supporting Files";
173-
sourceTree = "<group>";
174-
};
175167
99C292F71B24AD5F0008C32B /* ArrowTests */ = {
176168
isa = PBXGroup;
177169
children = (
@@ -224,7 +216,7 @@
224216
isa = PBXHeadersBuildPhase;
225217
buildActionMask = 2147483647;
226218
files = (
227-
99F4F0621CC3FBF10018D4C1 /* Arrow.h in Headers */,
219+
992CCAA41F7BF8FA00B170C8 /* Arrow.h in Headers */,
228220
);
229221
runOnlyForDeploymentPostprocessing = 0;
230222
};
@@ -276,17 +268,17 @@
276268
attributes = {
277269
LastSwiftMigration = 0700;
278270
LastSwiftUpdateCheck = 0730;
279-
LastUpgradeCheck = 0810;
271+
LastUpgradeCheck = 0900;
280272
ORGANIZATIONNAME = "Sacha Durand Saint Omer";
281273
TargetAttributes = {
282274
99C292E61B24AD5E0008C32B = {
283275
CreatedOnToolsVersion = 6.3.1;
284-
LastSwiftMigration = 0800;
276+
LastSwiftMigration = 0900;
285277
};
286278
99C292F01B24AD5F0008C32B = {
287279
CreatedOnToolsVersion = 6.3.1;
288280
DevelopmentTeam = A6CJ26NGRU;
289-
LastSwiftMigration = 0800;
281+
LastSwiftMigration = 0900;
290282
};
291283
};
292284
};
@@ -349,9 +341,9 @@
349341
isa = PBXSourcesBuildPhase;
350342
buildActionMask = 2147483647;
351343
files = (
352-
99F4F05F1CC3FBF10018D4C1 /* JSON.swift in Sources */,
353-
501B4F4C1DD0B95E00721F84 /* Extensions.swift in Sources */,
354-
99F4F0601CC3FBF10018D4C1 /* Arrow.swift in Sources */,
344+
992CCA9F1F7BF81200B170C8 /* Arrow.swift in Sources */,
345+
992CCAA21F7BF81B00B170C8 /* Extensions.swift in Sources */,
346+
992CCAA01F7BF81600B170C8 /* JSON.swift in Sources */,
355347
);
356348
runOnlyForDeploymentPostprocessing = 0;
357349
};
@@ -409,16 +401,23 @@
409401
ALWAYS_SEARCH_USER_PATHS = NO;
410402
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
411403
CLANG_CXX_LIBRARY = "libc++";
404+
CLANG_ENABLE_CODE_COVERAGE = NO;
412405
CLANG_ENABLE_MODULES = YES;
413406
CLANG_ENABLE_OBJC_ARC = YES;
407+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
414408
CLANG_WARN_BOOL_CONVERSION = YES;
409+
CLANG_WARN_COMMA = YES;
415410
CLANG_WARN_CONSTANT_CONVERSION = YES;
416411
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
417412
CLANG_WARN_EMPTY_BODY = YES;
418413
CLANG_WARN_ENUM_CONVERSION = YES;
419414
CLANG_WARN_INFINITE_RECURSION = YES;
420415
CLANG_WARN_INT_CONVERSION = YES;
416+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
417+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
421418
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
419+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
420+
CLANG_WARN_STRICT_PROTOTYPES = YES;
422421
CLANG_WARN_SUSPICIOUS_MOVE = YES;
423422
CLANG_WARN_UNREACHABLE_CODE = YES;
424423
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -447,7 +446,7 @@
447446
ONLY_ACTIVE_ARCH = YES;
448447
SDKROOT = iphoneos;
449448
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
450-
SWIFT_VERSION = 3.0;
449+
SWIFT_VERSION = 4.0;
451450
};
452451
name = Debug;
453452
};
@@ -457,16 +456,23 @@
457456
ALWAYS_SEARCH_USER_PATHS = NO;
458457
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
459458
CLANG_CXX_LIBRARY = "libc++";
459+
CLANG_ENABLE_CODE_COVERAGE = NO;
460460
CLANG_ENABLE_MODULES = YES;
461461
CLANG_ENABLE_OBJC_ARC = YES;
462+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
462463
CLANG_WARN_BOOL_CONVERSION = YES;
464+
CLANG_WARN_COMMA = YES;
463465
CLANG_WARN_CONSTANT_CONVERSION = YES;
464466
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
465467
CLANG_WARN_EMPTY_BODY = YES;
466468
CLANG_WARN_ENUM_CONVERSION = YES;
467469
CLANG_WARN_INFINITE_RECURSION = YES;
468470
CLANG_WARN_INT_CONVERSION = YES;
471+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
472+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
469473
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
474+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
475+
CLANG_WARN_STRICT_PROTOTYPES = YES;
470476
CLANG_WARN_SUSPICIOUS_MOVE = YES;
471477
CLANG_WARN_UNREACHABLE_CODE = YES;
472478
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -486,7 +492,7 @@
486492
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
487493
MTL_ENABLE_DEBUG_INFO = NO;
488494
SDKROOT = iphoneos;
489-
SWIFT_VERSION = 3.0;
495+
SWIFT_VERSION = 4.0;
490496
VALIDATE_PRODUCT = YES;
491497
};
492498
name = Release;
@@ -512,7 +518,8 @@
512518
PRODUCT_NAME = "$(TARGET_NAME)";
513519
SKIP_INSTALL = YES;
514520
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
515-
SWIFT_VERSION = 3.0;
521+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
522+
SWIFT_VERSION = 4.0;
516523
TARGETED_DEVICE_FAMILY = "1,2";
517524
VERSIONING_SYSTEM = "apple-generic";
518525
VERSION_INFO_PREFIX = "";
@@ -536,7 +543,8 @@
536543
PRODUCT_NAME = "$(TARGET_NAME)";
537544
SKIP_INSTALL = YES;
538545
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
539-
SWIFT_VERSION = 3.0;
546+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
547+
SWIFT_VERSION = 4.0;
540548
TARGETED_DEVICE_FAMILY = "1,2";
541549
VERSIONING_SYSTEM = "apple-generic";
542550
VERSION_INFO_PREFIX = "";
@@ -546,6 +554,7 @@
546554
99C293051B24AD5F0008C32B /* Debug */ = {
547555
isa = XCBuildConfiguration;
548556
buildSettings = {
557+
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
549558
DEVELOPMENT_TEAM = A6CJ26NGRU;
550559
GCC_PREPROCESSOR_DEFINITIONS = (
551560
"DEBUG=1",
@@ -555,20 +564,23 @@
555564
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
556565
PRODUCT_BUNDLE_IDENTIFIER = "com.fresh.$(PRODUCT_NAME:rfc1034identifier)";
557566
PRODUCT_NAME = "$(TARGET_NAME)";
558-
SWIFT_VERSION = 3.0;
567+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
568+
SWIFT_VERSION = 4.0;
559569
};
560570
name = Debug;
561571
};
562572
99C293061B24AD5F0008C32B /* Release */ = {
563573
isa = XCBuildConfiguration;
564574
buildSettings = {
575+
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
565576
DEVELOPMENT_TEAM = A6CJ26NGRU;
566577
INFOPLIST_FILE = ArrowTests/Info.plist;
567578
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
568579
PRODUCT_BUNDLE_IDENTIFIER = "com.fresh.$(PRODUCT_NAME:rfc1034identifier)";
569580
PRODUCT_NAME = "$(TARGET_NAME)";
570581
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
571-
SWIFT_VERSION = 3.0;
582+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
583+
SWIFT_VERSION = 4.0;
572584
};
573585
name = Release;
574586
};

Arrow.xcodeproj/xcshareddata/xcschemes/Arrow.xcscheme

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
3-
LastUpgradeVersion = "0810"
3+
LastUpgradeVersion = "0900"
44
version = "1.3">
55
<BuildAction
66
parallelizeBuildables = "YES"
@@ -26,8 +26,8 @@
2626
buildConfiguration = "Debug"
2727
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
2828
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29-
shouldUseLaunchSchemeArgsEnv = "YES"
30-
codeCoverageEnabled = "YES">
29+
language = ""
30+
shouldUseLaunchSchemeArgsEnv = "YES">
3131
<Testables>
3232
<TestableReference
3333
skipped = "NO">
@@ -56,6 +56,7 @@
5656
buildConfiguration = "Debug"
5757
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
5858
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
59+
language = ""
5960
launchStyle = "0"
6061
useCustomWorkingDirectory = "NO"
6162
ignoresPersistentStateOnLaunch = "NO"

Source/Arrow.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -244,12 +244,12 @@ public func <-- <T>(left: inout [T]?, right: JSON?) {
244244
}
245245

246246
/// Parses dictionaries of plain swift types.
247-
public func <-- <K: Hashable, V>(left: inout [K: V], right: JSON?) {
247+
public func <-- <K, V>(left: inout [K: V], right: JSON?) {
248248
setLeftIfIsResultNonNil(left: &left, right: right, function: <--)
249249
}
250250

251251
/// Parses optional dictionaries of plain swift types.
252-
public func <-- <K: Hashable, V>(left: inout [K: V]?, right: JSON?) {
252+
public func <-- <K, V>(left: inout [K: V]?, right: JSON?) {
253253
if let d = right?.data as? [AnyHashable: Any] {
254254
var tmp: [K: V] = [:]
255255
d.forEach {

Source/Extensions.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ extension Array where Element: RawRepresentable, Element.RawValue: ArrowInitiali
152152

153153
// MARK: - Dictionaries
154154

155-
extension Dictionary where Key: Hashable, Value: ArrowInitializable {
155+
extension Dictionary where Value: ArrowInitializable {
156156
/// Construct a `Dictionary` from JSON
157157
public init?(_ json: JSON?) {
158158
var x: [Key: Value]?

Source/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>3.0.5</string>
18+
<string>4.0.0</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

0 commit comments

Comments
 (0)