Skip to content

Commit f2632f4

Browse files
authored
Merge pull request #10 from RuiAAPeres/Swift3
Swift3 (Xcode8 GM) fixes
2 parents 05ce65f + 74b14c1 commit f2632f4

4 files changed

Lines changed: 27 additions & 22 deletions

File tree

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
language: objective-c
2-
osx_image: xcode7.3
2+
osx_image: xcode8
33
script:
44
- set -o pipefail
55
- xcodebuild test -scheme OptionalExtensions-Mac | xcpretty -c

OptionalExtensions.xcodeproj/project.pbxproj

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,18 +346,23 @@
346346
TargetAttributes = {
347347
7DA0535A1C3DC5F3001F27B2 = {
348348
CreatedOnToolsVersion = 7.2;
349+
LastSwiftMigration = 0800;
349350
};
350351
7DA0536A1C3DC675001F27B2 = {
351352
CreatedOnToolsVersion = 7.2;
353+
LastSwiftMigration = 0800;
352354
};
353355
C7263FBB1C3C6BB200F402F9 = {
354356
CreatedOnToolsVersion = 7.2;
357+
LastSwiftMigration = 0800;
355358
};
356359
C7263FC91C3C6C9E00F402F9 = {
357360
CreatedOnToolsVersion = 7.2;
361+
LastSwiftMigration = 0800;
358362
};
359363
C7263FD71C3C6D1000F402F9 = {
360364
CreatedOnToolsVersion = 7.2;
365+
LastSwiftMigration = 0800;
361366
};
362367
C7EC1DC31C34503A00BA1261 = {
363368
CreatedOnToolsVersion = 7.2;
@@ -532,6 +537,7 @@
532537
PRODUCT_BUNDLE_IDENTIFIER = "rp.OptionalExtensions-Mac-Tests";
533538
PRODUCT_NAME = "$(TARGET_NAME)";
534539
SDKROOT = macosx;
540+
SWIFT_VERSION = 3.0;
535541
};
536542
name = Debug;
537543
};
@@ -546,6 +552,7 @@
546552
PRODUCT_NAME = "$(TARGET_NAME)";
547553
SDKROOT = macosx;
548554
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
555+
SWIFT_VERSION = 3.0;
549556
};
550557
name = Release;
551558
};
@@ -557,6 +564,7 @@
557564
PRODUCT_BUNDLE_IDENTIFIER = "rp.OptionalExtensions-tvOS-Tests";
558565
PRODUCT_NAME = "$(TARGET_NAME)";
559566
SDKROOT = appletvos;
567+
SWIFT_VERSION = 3.0;
560568
TARGETED_DEVICE_FAMILY = 3;
561569
TVOS_DEPLOYMENT_TARGET = 9.1;
562570
};
@@ -571,6 +579,7 @@
571579
PRODUCT_NAME = "$(TARGET_NAME)";
572580
SDKROOT = appletvos;
573581
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
582+
SWIFT_VERSION = 3.0;
574583
TARGETED_DEVICE_FAMILY = 3;
575584
TVOS_DEPLOYMENT_TARGET = 9.1;
576585
};
@@ -591,6 +600,7 @@
591600
PRODUCT_NAME = OptionalExtensions;
592601
SDKROOT = watchos;
593602
SKIP_INSTALL = YES;
603+
SWIFT_VERSION = 3.0;
594604
TARGETED_DEVICE_FAMILY = 4;
595605
WATCHOS_DEPLOYMENT_TARGET = 2.0;
596606
};
@@ -612,6 +622,7 @@
612622
SDKROOT = watchos;
613623
SKIP_INSTALL = YES;
614624
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
625+
SWIFT_VERSION = 3.0;
615626
TARGETED_DEVICE_FAMILY = 4;
616627
WATCHOS_DEPLOYMENT_TARGET = 2.0;
617628
};
@@ -631,6 +642,7 @@
631642
PRODUCT_NAME = OptionalExtensions;
632643
SDKROOT = appletvos;
633644
SKIP_INSTALL = YES;
645+
SWIFT_VERSION = 3.0;
634646
TARGETED_DEVICE_FAMILY = 3;
635647
TVOS_DEPLOYMENT_TARGET = 9.0;
636648
};
@@ -651,6 +663,7 @@
651663
SDKROOT = appletvos;
652664
SKIP_INSTALL = YES;
653665
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
666+
SWIFT_VERSION = 3.0;
654667
TARGETED_DEVICE_FAMILY = 3;
655668
TVOS_DEPLOYMENT_TARGET = 9.0;
656669
};
@@ -673,6 +686,7 @@
673686
PRODUCT_NAME = OptionalExtensions;
674687
SDKROOT = macosx;
675688
SKIP_INSTALL = YES;
689+
SWIFT_VERSION = 3.0;
676690
};
677691
name = Debug;
678692
};
@@ -694,6 +708,7 @@
694708
SDKROOT = macosx;
695709
SKIP_INSTALL = YES;
696710
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
711+
SWIFT_VERSION = 3.0;
697712
};
698713
name = Release;
699714
};

OptionalExtensions/Source/OptionalExtensions.swift

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,52 +7,42 @@
77
//
88

99
public extension Optional {
10-
11-
func filter(_ predicate: @noescape (Wrapped) -> Bool) -> Optional {
1210

11+
func filter(_ predicate: (Wrapped) -> Bool) -> Optional {
1312
return map(predicate) == .some(true) ? self : .none
1413
}
1514

16-
func mapNil(_ predicate: @noescape (Void) -> Wrapped) -> Optional {
17-
15+
func mapNil(_ predicate: (Void) -> Wrapped) -> Optional {
1816
return self ?? .some(predicate())
1917
}
20-
21-
func flatMapNil(_ predicate: @noescape (Void) -> Optional) -> Optional {
22-
18+
19+
func flatMapNil(_ predicate: (Void) -> Optional) -> Optional {
2320
return self ?? predicate()
2421
}
2522

26-
func then(_ f: @noescape (Wrapped) -> Void) {
27-
23+
func then(_ f: (Wrapped) -> Void) {
2824
if let wrapped = self { f(wrapped) }
2925
}
30-
31-
32-
func maybe<U>(_ defaultValue: U, f: @noescape (Wrapped) -> U) -> U {
33-
26+
27+
func maybe<U>(_ defaultValue: U, f: (Wrapped) -> U) -> U {
3428
return map(f) ?? defaultValue
3529
}
3630

37-
func onSome(_ f: @noescape (Wrapped) -> Void) -> Optional {
38-
31+
func onSome(_ f: (Wrapped) -> Void) -> Optional {
3932
then(f)
4033
return self
4134
}
4235

43-
func onNone(_ f: @noescape (Void) -> Void) -> Optional {
44-
36+
func onNone(_ f: (Void) -> Void) -> Optional {
4537
if isNone { f() }
4638
return self
4739
}
4840

4941
var isSome: Bool {
50-
5142
return self != nil
5243
}
5344

54-
var isNone: Bool {
55-
45+
var isNone: Bool {
5646
return !isSome
5747
}
5848
}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<a href="https://travis-ci.org/RuiAAPeres/OptionalExtensions"><img src="https://travis-ci.org/RuiAAPeres/OptionalExtensions.svg?branch=master"></a>
44
<a href="https://github.com/Carthage/Carthage"><img src="https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat"></a>
55
[![CocoaPods](https://img.shields.io/cocoapods/v/OptionalExtensions.svg)](https://cocoapods.org/)
6-
[![Swift 3.0 ß6](https://img.shields.io/badge/Swift-3.0-orange.svg?style=flat)](https://developer.apple.com/swift/)
6+
[![Swift 3.0](https://img.shields.io/badge/Swift-3.0-orange.svg?style=flat)](https://developer.apple.com/swift/)
77
[![License MIT](https://img.shields.io/badge/License-MIT-lightgrey.svg?style=flat)](https://opensource.org/licenses/MIT)
88
![](https://camo.githubusercontent.com/410f44c161ebf367eacb1fcce9121e336e211bc6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506c6174666f726d2d696f732532302537432532306f737825323025374325323077617463686f7325323025374325323074766f732d6c69676874677265792e7376673f7374796c653d666c6174)
99

0 commit comments

Comments
 (0)