blob: 74b69176bc5e5d9e53e9a9bc4930e7527463b2c6 [file] [log] [blame]
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
//
// RUN: %empty-directory(%t)
// RUN: %target-build-swift -swift-version 4 %s -o %t/TestData_Swift4
// RUN: %target-codesign %t/TestData_Swift4
// RUN: %target-run %t/TestData_Swift4
// REQUIRES: executable_test
// REQUIRES: objc_interop
import Foundation
import StdlibUnittest
var DataTests = TestSuite("TestDataSwift4")
DataTests.test("functional map init usage") {
let res1 = [[UInt8(0), UInt8(1), UInt8(2)]].map(Data.init) // previously this could be done without being ambiguous (however in swift 4.2 an overload was added that makes it ambiguous as a function ref)
// the following two strategies are preferred to the previous version
let res2 = [[UInt8(0), UInt8(1), UInt8(2)]].map(Data.init(_:))
let res3 = [[UInt8(0), UInt8(1), UInt8(2)]].map { Data($0) }
expectEqual(res1.count, 1)
expectEqual(res2.count, 1)
expectEqual(res3.count, 1)
expectEqual(res1[0], res2[0])
expectEqual(res2[0], res3[0])
}
runAllTests()