Skip to content

Commit 15ecacd

Browse files
committed
Use 'as' bridging on Linux when using Swift 4.2
Introduced in swiftlang/swift-corelibs-foundation#1572
1 parent 5106023 commit 15ecacd

File tree

3 files changed

+22
-16
lines changed

3 files changed

+22
-16
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
use the `clean` action on `xcodebuild`.
1111
[Norio Nomura](https://github.com/norio-nomura)
1212

13+
* Use 'as' bridging on Linux when using Swift 4.2.
14+
[JP Simard](https://github.com/jpsim)
15+
1316
##### Bug Fixes
1417

1518
* None.

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,10 @@ archive:
8080
release: package archive
8181

8282
docker_test:
83-
docker run -v `pwd`:`pwd` -w `pwd` --rm norionomura/swift:40 swift test
83+
docker run -v `pwd`:`pwd` -w `pwd` --name sourcekitten --rm norionomura/swift:42 swift test --parallel
84+
85+
docker_htop:
86+
docker run -it --rm --pid=container:sourcekitten terencewestphal/htop || reset
8487

8588
# http://irace.me/swift-profiling/
8689
display_compilation_time:

Source/SourceKittenFramework/LinuxCompatibility.swift

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,50 +10,50 @@ import Foundation
1010

1111
extension Array {
1212
public func bridge() -> NSArray {
13-
#if os(Linux)
14-
return NSArray(array: self)
15-
#else
13+
#if _runtime(_ObjC) || swift(>=4.1.50)
1614
return self as NSArray
15+
#else
16+
return NSArray(array: self)
1717
#endif
1818
}
1919
}
2020

2121
extension CharacterSet {
2222
public func bridge() -> NSCharacterSet {
23-
#if os(Linux)
24-
return _bridgeToObjectiveC()
25-
#else
23+
#if _runtime(_ObjC) || swift(>=4.1.50)
2624
return self as NSCharacterSet
25+
#else
26+
return _bridgeToObjectiveC()
2727
#endif
2828
}
2929
}
3030

3131
extension Dictionary {
3232
public func bridge() -> NSDictionary {
33-
#if os(Linux)
34-
return NSDictionary(dictionary: self)
35-
#else
33+
#if _runtime(_ObjC) || swift(>=4.1.50)
3634
return self as NSDictionary
35+
#else
36+
return NSDictionary(dictionary: self)
3737
#endif
3838
}
3939
}
4040

4141
extension NSString {
4242
public func bridge() -> String {
43-
#if os(Linux)
44-
return _bridgeToSwift()
45-
#else
43+
#if _runtime(_ObjC) || swift(>=4.1.50)
4644
return self as String
45+
#else
46+
return _bridgeToSwift()
4747
#endif
4848
}
4949
}
5050

5151
extension String {
5252
public func bridge() -> NSString {
53-
#if os(Linux)
54-
return NSString(string: self)
55-
#else
53+
#if _runtime(_ObjC) || swift(>=4.1.50)
5654
return self as NSString
55+
#else
56+
return NSString(string: self)
5757
#endif
5858
}
5959
}

0 commit comments

Comments
 (0)