// RUN: %empty-directory(%t)
// RUN: %target-build-swift %s -o %t/a.out4 -swift-version 4 && %target-codesign %t/a.out4 && %target-run %t/a.out4
// RUN: %target-build-swift %s -o %t/a.out5 -swift-version 5 && %target-codesign %t/a.out5 && %target-run %t/a.out5
// REQUIRES: executable_test

// Requires swift-version 4
// UNSUPPORTED: swift_test_mode_optimize_none_with_implicit_dynamic

import StdlibUnittest

#if swift(>=4.2)
let swiftVersion = ">=4.2"
#else
let swiftVersion = "<4.2"
#endif

let tests = TestSuite("ReverseCompatibility")

tests.test("Double reverse type/Collection/\(swiftVersion)") {
  func reverse<C : BidirectionalCollection>(_ xs: C) {
    var result = xs.reversed().reversed()
#if swift(>=4.2)
    expectType(C.self, &result)
#else
    expectType(ReversedCollection<ReversedCollection<C>>.self, &result)
#endif
  }
  reverse(Array(0..<10))

  func backwardCompatible<C : BidirectionalCollection>(_ xs: C) {
    typealias ExpectedType = ReversedCollection<ReversedCollection<C>>
    var result: ExpectedType = xs.reversed().reversed()
    expectType(ExpectedType.self, &result)
  }
  backwardCompatible(Array(0..<10))
}

runAllTests()
