 /// Precondition: at least one of BridgesToKey or BridgesToValue is an
 /// object type, and at least one of Key or Value is a bridged value
 /// type.
-public
-func _dictionaryBridgeFromObjectiveC<Key, Value, BridgesToKey, BridgesToValue>(
-       source: Dictionary<Key, Value>
-     ) -> Dictionary<BridgesToKey, BridgesToValue> {
-  let result: Dictionary<BridgesToKey, BridgesToValue>?
-    = _dictionaryBridgeFromObjectiveCConditional(source);
+public func _dictionaryBridgeFromObjectiveC<
+    Key, Value, BridgesToKey, BridgesToValue
+>(
+    source: Dictionary<Key, Value>
+) -> Dictionary<BridgesToKey, BridgesToValue> {
+  let result: Dictionary<BridgesToKey, BridgesToValue>? =
+      _dictionaryBridgeFromObjectiveCConditional(source);
   _precondition(result, "dictionary cannot be bridged from Objective-C")
   return result!
 }


//===--- Compiler conversion/casting entry points -------------------------===//

/// Perform a non-bridged upcast from the source to another dictionary.
///
/// Requires: BaseKey and BaseValue are base classs or base objc
/// protocols (such as AnyObject) of DerivedKey and DerivedValue,
/// respectively.
///
/// FIXME: This crappy implementation is O(n) because it copies the
/// data; a proper implementation would be O(1).
public
func _dictionaryUpCast<DerivedKey, DerivedValue, BaseKey, BaseValue>(
       source: Dictionary<DerivedKey, DerivedValue>
     ) -> Dictionary<BaseKey, BaseValue> {
  _sanityCheck(_isBridgedVerbatimToObjectiveC(BaseKey.self))
  _sanityCheck(_isBridgedVerbatimToObjectiveC(BaseValue.self))
  _sanityCheck(_isBridgedVerbatimToObjectiveC(DerivedKey.self))
  _sanityCheck(_isBridgedVerbatimToObjectiveC(DerivedValue.self))

  var result = Dictionary<BaseKey, BaseValue>(minimumCapacity: source.count)
  for (k, v) in source {

  return result
}

/// Perform a bridged upcast from the `source` to another dictionary.
///
/// Precondition: `BridgesToKey` and `BridgesToValue` are bridged to
/// Objective-C, and at least one of them requires bridging.
public func _dictionaryBridgeToObjectiveC<
    BridgesToKey, BridgesToValue, Key, Value
>(
    source: Dictionary<BridgesToKey, BridgesToValue>
) -> Dictionary<Key, Value> {
  _sanityCheck(!_isBridgedVerbatimToObjectiveC(BridgesToKey.self) ||
               !_isBridgedVerbatimToObjectiveC(BridgesToValue.self))
  _sanityCheck(_isBridgedVerbatimToObjectiveC(Key.self) ||
