// RUN: %target-run-simple-swift | FileCheck %s
// REQUIRES: executable_test

func double(_ x: Int) -> Int {
  return x+x
}

func curriedSubtract(_ x: Int) -> (Int) -> Int {
  return { y in x - y }
}

func twice(_ f: (Int) -> Int, _ x: Int) -> Int {
  return f(f(x))
}

// CHECK: 4
print(double(2))
// CHECK: 8
print(double(4))

// CHECK: 12
print(curriedSubtract(16)(4))

// CHECK: 20
print(twice(double, 5))
// CHECK: 7
print(twice({ $0 + 1 }, 5))
// CHECK: 3
print(twice({ x in x - 1 }, 5))

// <rdar://problem/22044607>
class C {}
class D : C {}

func foo(_ a: Any, p2: Bool = true) { print("Wrong") }
func foo(_ c: C) { print("Right") }

func bar(_ a: Any..., p2: Bool = true) { print("Wrong") }
func bar(_ c: C) { print("Right") }

// CHECK: Right
foo(D())
// CHECK: Right
bar(D())
