Merge pull request #207 from ianpartridge/xcode-proj

Update minimum macOS deployment target to 10.12
diff --git a/Sources/XCTest/Public/XCTAssert.swift b/Sources/XCTest/Public/XCTAssert.swift
index dd94dd8..f16b10b 100644
--- a/Sources/XCTest/Public/XCTAssert.swift
+++ b/Sources/XCTest/Public/XCTAssert.swift
@@ -169,61 +169,6 @@
     }
 }
 
-public func XCTAssertEqual<T: Equatable>(_ expression1: @autoclosure () throws -> T?, _ expression2: @autoclosure () throws -> T?, _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
-    _XCTEvaluateAssertion(.equal, message: message, file: file, line: line) {
-        let (value1, value2) = (try expression1(), try expression2())
-        if value1 == value2 {
-            return .success
-        } else {
-            return .expectedFailure("(\"\(String(describing: value1))\") is not equal to (\"\(String(describing: value2))\")")
-        }
-    }
-}
-
-public func XCTAssertEqual<T: Equatable>(_ expression1: @autoclosure () throws -> ArraySlice<T>, _ expression2: @autoclosure () throws -> ArraySlice<T>, _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
-    _XCTEvaluateAssertion(.equal, message: message, file: file, line: line) {
-        let (value1, value2) = (try expression1(), try expression2())
-        if value1 == value2 {
-            return .success
-        } else {
-            return .expectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")")
-        }
-    }
-}
-
-public func XCTAssertEqual<T: Equatable>(_ expression1: @autoclosure () throws -> ContiguousArray<T>, _ expression2: @autoclosure () throws -> ContiguousArray<T>, _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
-    _XCTEvaluateAssertion(.equal, message: message, file: file, line: line) {
-        let (value1, value2) = (try expression1(), try expression2())
-        if value1 == value2 {
-            return .success
-        } else {
-            return .expectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")")
-        }
-    }
-}
-
-public func XCTAssertEqual<T: Equatable>(_ expression1: @autoclosure () throws -> [T], _ expression2: @autoclosure () throws -> [T], _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
-    _XCTEvaluateAssertion(.equal, message: message, file: file, line: line) {
-        let (value1, value2) = (try expression1(), try expression2())
-        if value1 == value2 {
-            return .success
-        } else {
-            return .expectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")")
-        }
-    }
-}
-
-public func XCTAssertEqual<T, U: Equatable>(_ expression1: @autoclosure () throws -> [T: U], _ expression2: @autoclosure () throws -> [T: U], _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
-    _XCTEvaluateAssertion(.equal, message: message, file: file, line: line) {
-        let (value1, value2) = (try expression1(), try expression2())
-        if value1 == value2 {
-            return .success
-        } else {
-            return .expectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")")
-        }
-    }
-}
-
 public func XCTAssertEqual<T: FloatingPoint>(_ expression1: @autoclosure () throws -> T, _ expression2: @autoclosure () throws -> T, accuracy: T, _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
     _XCTEvaluateAssertion(.equalWithAccuracy, message: message, file: file, line: line) {
         let (value1, value2) = (try expression1(), try expression2())
@@ -317,61 +262,6 @@
     }
 }
 
-public func XCTAssertNotEqual<T: Equatable>(_ expression1: @autoclosure () throws -> T?, _ expression2: @autoclosure () throws -> T?, _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
-    _XCTEvaluateAssertion(.notEqual, message: message, file: file, line: line) {
-        let (value1, value2) = (try expression1(), try expression2())
-        if value1 != value2 {
-            return .success
-        } else {
-            return .expectedFailure("(\"\(String(describing: value1))\") is equal to (\"\(String(describing: value2))\")")
-        }
-    }
-}
-
-public func XCTAssertNotEqual<T: Equatable>(_ expression1: @autoclosure () throws -> ContiguousArray<T>, _ expression2: @autoclosure () throws -> ContiguousArray<T>, _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
-    _XCTEvaluateAssertion(.notEqual, message: message, file: file, line: line) {
-        let (value1, value2) = (try expression1(), try expression2())
-        if value1 != value2 {
-            return .success
-        } else {
-            return .expectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")")
-        }
-    }
-}
-
-public func XCTAssertNotEqual<T: Equatable>(_ expression1: @autoclosure () throws -> ArraySlice<T>, _ expression2: @autoclosure () throws -> ArraySlice<T>, _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
-    _XCTEvaluateAssertion(.notEqual, message: message, file: file, line: line) {
-        let (value1, value2) = (try expression1(), try expression2())
-        if value1 != value2 {
-            return .success
-        } else {
-            return .expectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")")
-        }
-    }
-}
-
-public func XCTAssertNotEqual<T: Equatable>(_ expression1: @autoclosure () throws -> [T], _ expression2: @autoclosure () throws -> [T], _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
-    _XCTEvaluateAssertion(.notEqual, message: message, file: file, line: line) {
-        let (value1, value2) = (try expression1(), try expression2())
-        if value1 != value2 {
-            return .success
-        } else {
-            return .expectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")")
-        }
-    }
-}
-
-public func XCTAssertNotEqual<T, U: Equatable>(_ expression1: @autoclosure () throws -> [T: U], _ expression2: @autoclosure () throws -> [T: U], _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
-    _XCTEvaluateAssertion(.notEqual, message: message, file: file, line: line) {
-        let (value1, value2) = (try expression1(), try expression2())
-        if value1 != value2 {
-            return .success
-        } else {
-            return .expectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")")
-        }
-    }
-}
-
 public func XCTAssertNotEqual<T: FloatingPoint>(_ expression1: @autoclosure () throws -> T, _ expression2: @autoclosure () throws -> T, accuracy: T, _ message: @autoclosure () -> String = "", file: StaticString = #file, line: UInt = #line) {
     _XCTEvaluateAssertion(.notEqualWithAccuracy, message: message, file: file, line: line) {
         let (value1, value2) = (try expression1(), try expression2())