| // RUN: %empty-directory(%t) |
| // RUN: %target-build-swift %s -o %t/a.out && %target-codesign %t/a.out && %target-run %t/a.out |
| |
| // REQUIRES: executable_test |
| |
| import StdlibUnittest |
| |
| |
| public typealias ExpectedResultType = [Character] |
| |
| var Tests = TestSuite("StringFlatMap") |
| |
| Tests.test("DefaultReturnType") { |
| var result = ["hello", "world"].flatMap { $0 } |
| expectType(ExpectedResultType.self, &result) |
| } |
| |
| Tests.test("ExplicitTypeContext") { |
| expectEqualSequence(["hello", "world"], |
| ["hello", "world"].flatMap { $0 } as [String]) |
| expectEqualSequence("helloworld", |
| ["hello", "world"].flatMap { $0 } as [Character]) |
| } |
| |
| Tests.test("inference") { |
| let result = [1, 2].flatMap { x in |
| if String(x) == "foo" { |
| return "bar" |
| } else { |
| return nil |
| } |
| } |
| expectEqualSequence([], result) |
| } |
| |
| runAllTests() |