 ///
 /// Requires: `bits != _objectPointerSpareBits`, `bits &
 /// _objectPointerSpareBits == bits`
-internal func _makeNativeBridgeObject<NativeClass: AnyObject>(
-  nativeObject: NativeClass, bits: UInt
+internal func _makeNativeBridgeObject(
+  nativeObject: AnyObject, bits: UInt
 ) -> Builtin.BridgeObject {
   _sanityCheck(
     bits != _objectPointerSpareBits,

/// 2. if `object` is a tagged pointer, `bits == 0`.  Otherwise, 
///    `object` is either a native object, or `bits ==
///    _objectPointerSpareBits`.
internal func _makeBridgeObject<Class: AnyObject>(
  object: Class, bits: UInt
) -> Builtin.BridgeObject {
  // if object is a tagged pointer, bits == 0
  _sanityCheck(!_isObjCTaggedPointer(object) || bits == 0)

  // Otherwise, object is native or bits == _objectPointerSpareBits
  _sanityCheck(
    _isObjCTaggedPointer(object) ||
    _usesNativeSwiftReferenceCounting(object.dynamicType) ||
    bits == _objectPointerSpareBits)
  
  _sanityCheck(
    bits & _objectPointerSpareBits == bits,

}

/// Create a `BridgeObject` around the given `objCObject`.
internal func _makeObjCBridgeObject(
  objCObject: AnyObject
) -> Builtin.BridgeObject {
  return _makeBridgeObject(
    objCObject,
