Skip to content

Remove dead bridging calls for dead parameters #19797

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 10, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions lib/IRGen/IRGenModule.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -711,6 +711,12 @@ bool IRGenerator::canEmitWitnessTableLazily(SILWitnessTable *wt) {
if (Opts.UseJIT)
return false;

// Regardless of the access level, if the witness table is shared it means
// we can safely not emit it. Every other module which needs it will generate
// its own shared copy of it.
if (wt->getLinkage() == SILLinkage::Shared)
return true;

NominalTypeDecl *ConformingTy =
wt->getConformance()->getType()->getNominalOrBoundGenericNominal();

Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Dispatch/Data.swift
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,7 @@ extension DispatchData {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: __DispatchData?) -> DispatchData {
var result: DispatchData?
_forceBridgeFromObjectiveC(source!, result: &result)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/AffineTransform.swift
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ extension AffineTransform : _ObjectiveCBridgeable {
return true // Can't fail
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ x: NSAffineTransform?) -> AffineTransform {
guard let src = x else { return AffineTransform.identity }
return AffineTransform(reference: src)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/Calendar.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1113,6 +1113,7 @@ extension Calendar : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSCalendar?) -> Calendar {
var result: Calendar?
_forceBridgeFromObjectiveC(source!, result: &result)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/CharacterSet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -782,6 +782,7 @@ extension CharacterSet : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSCharacterSet?) -> CharacterSet {
guard let src = source else { return CharacterSet() }
return CharacterSet(_bridged: src)
Expand Down
3 changes: 2 additions & 1 deletion stdlib/public/SDK/Foundation/Data.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1902,7 +1902,8 @@ extension Data : _ObjectiveCBridgeable {
result = Data(referencing: input)
return true
}


@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSData?) -> Data {
guard let src = source else { return Data() }
return Data(referencing: src)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/Date.swift
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,7 @@ extension Date : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSDate?) -> Date {
var result: Date?
_forceBridgeFromObjectiveC(source!, result: &result)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/DateComponents.swift
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,7 @@ extension DateComponents : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSDateComponents?) -> DateComponents {
guard let src = source else { return DateComponents() }
return DateComponents(reference: src)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/DateInterval.swift
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ extension DateInterval : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSDateInterval?) -> DateInterval {
var result: DateInterval?
_forceBridgeFromObjectiveC(source!, result: &result)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/Decimal.swift
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,7 @@ extension Decimal : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSDecimalNumber?) -> Decimal {
guard let src = source else { return Decimal(_exponent: 0, _length: 0, _isNegative: 0, _isCompact: 0, _reserved: 0, _mantissa: (0, 0, 0, 0, 0, 0, 0, 0)) }
return src.decimalValue
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/Foundation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ extension AnyHashable : _ObjectiveCBridgeable {
return result != nil
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(
_ source: NSObject?
) -> AnyHashable {
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/IndexPath.swift
Original file line number Diff line number Diff line change
Expand Up @@ -780,6 +780,7 @@ extension IndexPath : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSIndexPath?) -> IndexPath {
guard let src = source else { return IndexPath() }
return IndexPath(nsIndexPath: src)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/IndexSet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -775,6 +775,7 @@ extension IndexSet : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSIndexSet?) -> IndexSet {
guard let src = source else { return IndexSet() }
return IndexSet(reference: src)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/Locale.swift
Original file line number Diff line number Diff line change
Expand Up @@ -466,6 +466,7 @@ extension Locale : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSLocale?) -> Locale {
var result: Locale?
_forceBridgeFromObjectiveC(source!, result: &result)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/Measurement.swift
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,7 @@ extension Measurement : MeasurementBridgeType {
}
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSMeasurement?) -> Measurement {
let u = source!.unit as! UnitType
return Measurement(value: source!.doubleValue, unit: u)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/NSArray.swift
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ extension Array : _ObjectiveCBridgeable {
return result != nil
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(
_ source: NSArray?
) -> Array {
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/NSDictionary.swift
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ extension Dictionary : _ObjectiveCBridgeable {
return result != nil
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(
_ d: NSDictionary?
) -> Dictionary {
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/NSError.swift
Original file line number Diff line number Diff line change
Expand Up @@ -547,6 +547,7 @@ extension _SwiftNewtypeWrapper where Self.RawValue == Error {
}

@inlinable // FIXME(sil-serialize-all)
@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(
_ source: NSError?
) -> Self {
Expand Down
16 changes: 15 additions & 1 deletion stdlib/public/SDK/Foundation/NSNumber.swift
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ extension Int8 : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> Int8 {
var result: Int8?
guard let src = source else { return Int8(0) }
Expand Down Expand Up @@ -87,6 +88,7 @@ extension UInt8 : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> UInt8 {
var result: UInt8?
guard let src = source else { return UInt8(0) }
Expand Down Expand Up @@ -128,6 +130,7 @@ extension Int16 : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> Int16 {
var result: Int16?
guard let src = source else { return Int16(0) }
Expand Down Expand Up @@ -169,6 +172,7 @@ extension UInt16 : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> UInt16 {
var result: UInt16?
guard let src = source else { return UInt16(0) }
Expand Down Expand Up @@ -210,6 +214,7 @@ extension Int32 : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> Int32 {
var result: Int32?
guard let src = source else { return Int32(0) }
Expand Down Expand Up @@ -251,6 +256,7 @@ extension UInt32 : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> UInt32 {
var result: UInt32?
guard let src = source else { return UInt32(0) }
Expand Down Expand Up @@ -292,6 +298,7 @@ extension Int64 : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> Int64 {
var result: Int64?
guard let src = source else { return Int64(0) }
Expand Down Expand Up @@ -332,7 +339,8 @@ extension UInt64 : _ObjectiveCBridgeable {
result = value
return true
}


@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> UInt64 {
var result: UInt64?
guard let src = source else { return UInt64(0) }
Expand Down Expand Up @@ -374,6 +382,7 @@ extension Int : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> Int {
var result: Int?
guard let src = source else { return Int(0) }
Expand Down Expand Up @@ -415,6 +424,7 @@ extension UInt : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> UInt {
var result: UInt?
guard let src = source else { return UInt(0) }
Expand Down Expand Up @@ -467,6 +477,7 @@ extension Float : _ObjectiveCBridgeable {
return result != nil
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> Float {
var result: Float?
guard let src = source else { return Float(0) }
Expand Down Expand Up @@ -521,6 +532,7 @@ extension Double : _ObjectiveCBridgeable {
return result != nil
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> Double {
var result: Double?
guard let src = source else { return Double(0) }
Expand Down Expand Up @@ -572,6 +584,7 @@ extension Bool : _ObjectiveCBridgeable {
return false
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> Bool {
var result: Bool?
guard let src = source else { return false }
Expand Down Expand Up @@ -614,6 +627,7 @@ extension CGFloat : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNumber?) -> CGFloat {
var result: CGFloat?
guard let src = source else { return CGFloat(0) }
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/NSSet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ extension Set : _ObjectiveCBridgeable {
return result != nil
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ s: NSSet?) -> Set {
// `nil` has historically been used as a stand-in for an empty
// set; map it to an empty set.
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/Notification.swift
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ extension Notification : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSNotification?) -> Notification {
guard let src = source else { return Notification(name: Notification.Name("")) }
return Notification(name: src.name, object: src.object, userInfo: src.userInfo)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/PersonNameComponents.swift
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ extension PersonNameComponents : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSPersonNameComponents?) -> PersonNameComponents {
var result: PersonNameComponents?
_forceBridgeFromObjectiveC(source!, result: &result)
Expand Down
2 changes: 2 additions & 0 deletions stdlib/public/SDK/Foundation/String.swift
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ extension String : _ObjectiveCBridgeable {
return result != nil
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(
_ source: NSString?
) -> String {
Expand Down Expand Up @@ -82,6 +83,7 @@ extension Substring : _ObjectiveCBridgeable {
return result != nil
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(
_ source: NSString?
) -> Substring {
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/TimeZone.swift
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,7 @@ extension TimeZone : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSTimeZone?) -> TimeZone {
var result: TimeZone?
_forceBridgeFromObjectiveC(source!, result: &result)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/URL.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1205,6 +1205,7 @@ extension URL : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSURL?) -> URL {
var result: URL?
_forceBridgeFromObjectiveC(source!, result: &result)
Expand Down
2 changes: 2 additions & 0 deletions stdlib/public/SDK/Foundation/URLComponents.swift
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,7 @@ extension URLComponents : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSURLComponents?) -> URLComponents {
guard let src = source else { return URLComponents() }
return URLComponents(reference: src)
Expand Down Expand Up @@ -465,6 +466,7 @@ extension URLQueryItem : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSURLQueryItem?) -> URLQueryItem {
var result: URLQueryItem?
_forceBridgeFromObjectiveC(source!, result: &result)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/URLRequest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@ extension URLRequest : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSURLRequest?) -> URLRequest {
var result: URLRequest?
_forceBridgeFromObjectiveC(source!, result: &result)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Foundation/UUID.swift
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ extension UUID : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: NSUUID?) -> UUID {
var result: UUID?
_forceBridgeFromObjectiveC(source!, result: &result)
Expand Down
1 change: 1 addition & 0 deletions stdlib/public/SDK/Intents/INShortcut.swift
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ extension INShortcut : _ObjectiveCBridgeable {
return true
}

@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: INShortcutReference?) -> INShortcut {
guard let src = source else { fatalError("Missing source") }
return INShortcut(from: src)
Expand Down
2 changes: 2 additions & 0 deletions stdlib/public/core/BridgeObjectiveC.swift
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ public protocol _ObjectiveCBridgeable {
/// implementation of `Swift.Array`'s conformance to
/// `_ObjectiveCBridgeable` will produce an empty array rather than
/// dynamically failing.
@_effects(readonly)
static func _unconditionallyBridgeFromObjectiveC(_ source: _ObjectiveCType?)
-> Self
}
Expand Down Expand Up @@ -133,6 +134,7 @@ public struct _BridgeableMetatype: _ObjectiveCBridgeable {
}

@inlinable // FIXME(sil-serialize-all)
@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(_ source: AnyObject?)
-> _BridgeableMetatype {
var result: _BridgeableMetatype?
Expand Down
2 changes: 2 additions & 0 deletions stdlib/public/core/NewtypeWrapper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ extension _SwiftNewtypeWrapper where Self.RawValue : _ObjectiveCBridgeable {
}

@inlinable // FIXME(sil-serialize-all)
@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(
_ source: Self.RawValue._ObjectiveCType?
) -> Self {
Expand Down Expand Up @@ -165,6 +166,7 @@ extension _SwiftNewtypeWrapper where Self.RawValue: AnyObject {
}

@inlinable // FIXME(sil-serialize-all)
@_effects(readonly)
public static func _unconditionallyBridgeFromObjectiveC(
_ source: Self.RawValue?
) -> Self {
Expand Down
Loading