     return Swift._isBridgedToObjectiveC(Key.self) &&
            Swift._isBridgedToObjectiveC(Value.self)
   }
+
+  public static func _unconditionallyBridgeFromObjectiveC(
+    d: NSDictionary?
+  ) -> Dictionary {
+    // `nil` has historically been used as a stand-in for an empty
+    // dictionary; map it to an empty dictionary.
+    if _slowPath(d == nil) { return Dictionary() }
+
+    if let native = [Key : Value]._bridgeFromObjectiveCAdoptingNativeStorageOf(
+        d! as AnyObject) {
+      return native
+    }
+
+    if _isBridgedVerbatimToObjectiveC(Key.self) &&
+       _isBridgedVerbatimToObjectiveC(Value.self) {
+      return [Key : Value](
+        _cocoaDictionary: unsafeBitCast(d!, to: _NSDictionary.self))
+    }
+
+    // `Dictionary<Key, Value>` where either `Key` or `Value` is a value type
+    // may not be backed by an NSDictionary.
+    var builder = _DictionaryBuilder<Key, Value>(count: d!.count)
+    d!.enumerateKeysAndObjects({
+      (anyObjectKey: AnyObject, anyObjectValue: AnyObject,
+       stop: UnsafeMutablePointer<ObjCBool>) in
+      builder.add(
+          key: Swift._forceBridgeFromObjectiveC(anyObjectKey, Key.self),
+          value: Swift._forceBridgeFromObjectiveC(anyObjectValue, Value.self))
+    })
+    return builder.take()
+  }
 }
 
 //===----------------------------------------------------------------------===//

  ) -> Bool {
    self._forceBridgeFromObjectiveC(x, result: &result)
    return true
  }
}


    self._forceBridgeFromObjectiveC(x, result: &result)
    return true
  }

  public static func _unconditionallyBridgeFromObjectiveC(
    source: NSNumber?
  ) -> Float {
    return source!.floatValue
  }
}

extension Double : _ObjectiveCBridgeable {
