   }
 
   @_versioned
-  @inline(never) // Hide the CF dependency
+  // TODO: After removing above hack: @inline(never) // Hide the CF dependency
   internal func _computeHashValue(_ range: Range<Int>) -> Int {
+    defer { _fixLifetime(self) }
     if _slowPath(_isOpaque) {
       return _asOpaque()[range].computeHashValue()
     }

  /// your program. Do not save hash values to use during a future execution.
  @_inlineable // FIXME(sil-serialize-all)
  public var hashValue: Int {
    return _guts._computeHashValue()
  }
}


}

extension _StringGuts {
  //
  // FIXME(TODO: JIRA): HACK HACK HACK: Work around for ARC :-(
  //
  @_versioned
  @effects(readonly)
  @inline(never) // Hide the CF dependency
  internal static func _computeHashValue(
    _unsafeBitPattern: _RawBitPattern
  ) -> Int {
    return _StringGuts(rawBits: _unsafeBitPattern)._computeHashValue()
  }

  @_versioned
  // TODO: After removing above hack: @inline(never) // Hide the CF dependency
  internal func _computeHashValue() -> Int {
    defer { _fixLifetime(self) }
    if _slowPath(_isOpaque) {
      return _asOpaque().computeHashValue()
    }
