         // Append this run and merge down as needed to maintain the `runs`
         // invariants.
         runs.append(start..<end)
-        result = try result && _mergeTopRuns(
+        try _mergeTopRuns(
           &runs, buffer: buffer.baseAddress!, by: areInIncreasingOrder)
         start = end
       }
       
-      result = try result && _finalizeRuns(
+      try _finalizeRuns(
         &runs, buffer: buffer.baseAddress!, by: areInIncreasingOrder)
       _internalInvariant(runs.count == 1, "Didn't complete final merge")
     }
-
-    // FIXME: Remove this, it works around SR-14750 (rdar://45044610)
-    _precondition(result)
-  }
-}
+  }
+}

        within: startIndex..<endIndex, by: areInIncreasingOrder)
      return
    }

    // FIXME: Remove this, it works around SR-14750 (rdar://45044610)
    var result = true

    // Use array's allocating initializer to create a temporary buffer---this
    // keeps the buffer allocation going through the same tail-allocated path

      }
      
      // Merge the runs at `i` and `i - 1`.
      try _mergeRuns(
        &runs, at: lastIndex, buffer: buffer, by: areInIncreasingOrder)
    }

    return true
  }
  
  /// Merges elements of `runs` until only one run remains.
