// RUN: %target-swift-emit-silgen -sdk %S/Inputs -I %S/Inputs -enable-source-import %s -disable-objc-attr-requires-foundation-module -enable-objc-interop -enable-sil-ownership | %FileCheck %s

protocol AddrOnly {}

func callMethodsOnD<U>(d: D, b: B, a: AddrOnly, u: U, i: Int) {
  _ = d.iuo(x: b, y: b, z: b)
  _ = d.f(x: b, y: b)
  _ = d.f2(x: b, y: b)
  _ = d.f3(x: b, y: b)
  _ = d.f4(x: b, y: b)
  _ = d.g(x: a, y: a)
  _ = d.g2(x: a, y: a)
  _ = d.g3(x: a, y: a)
  _ = d.g4(x: a, y: a)
  _ = d.h(x: u, y: u)
  _ = d.h2(x: u, y: u)
  _ = d.h3(x: u, y: u)
  _ = d.h4(x: u, y: u)
  _ = d.i(x: i, y: i)
  _ = d.i2(x: i, y: i)
  _ = d.i3(x: i, y: i)
  _ = d.i4(x: i, y: i)
}

func callMethodsOnF<U>(d: F, b: B, a: AddrOnly, u: U, i: Int) {
  _ = d.iuo(x: b, y: b, z: b)
  _ = d.f(x: b, y: b)
  _ = d.f2(x: b, y: b)
  _ = d.f3(x: b, y: b)
  _ = d.f4(x: b, y: b)
  _ = d.g(x: a, y: a)
  _ = d.g2(x: a, y: a)
  _ = d.g3(x: a, y: a)
  _ = d.g4(x: a, y: a)
  _ = d.h(x: u, y: u)
  _ = d.h2(x: u, y: u)
  _ = d.h3(x: u, y: u)
  _ = d.h4(x: u, y: u)
  _ = d.i(x: i, y: i)
  _ = d.i2(x: i, y: i)
  _ = d.i3(x: i, y: i)
  _ = d.i4(x: i, y: i)
}

@objc class B {
  // We only allow B! -> B overrides for @objc methods.
  // The IUO force-unwrap requires a thunk.
  @objc func iuo(x: B, y: B!, z: B) -> B? {}

  // f* don't require thunks, since the parameters and returns are object
  // references.
  func f(x: B, y: B) -> B? {}
  func f2(x: B, y: B) -> B? {}
  func f3(x: B, y: B) -> B {}
  func f4(x: B, y: B) -> B {}

  // Thunking monomorphic address-only params and returns
  func g(x: AddrOnly, y: AddrOnly) -> AddrOnly? {}
  func g2(x: AddrOnly, y: AddrOnly) -> AddrOnly? {}
  func g3(x: AddrOnly, y: AddrOnly) -> AddrOnly {}
  func g4(x: AddrOnly, y: AddrOnly) -> AddrOnly {}

  // Thunking polymorphic address-only params and returns
  func h<T>(x: T, y: T) -> T? {}
  func h2<T>(x: T, y: T) -> T? {}
  func h3<T>(x: T, y: T) -> T {}
  func h4<T>(x: T, y: T) -> T {}

  // Thunking value params and returns
  func i(x: Int, y: Int) -> Int? {}
  func i2(x: Int, y: Int) -> Int? {}
  func i3(x: Int, y: Int) -> Int {}
  func i4(x: Int, y: Int) -> Int {}

  // Note: i3, i4 are implicitly @objc
}

class D: B {
  override func iuo(x: B?, y: B, z: B) -> B {}

  override func f(x: B?, y: B) -> B {}
  override func f2(x: B, y: B) -> B {}
  override func f3(x: B?, y: B) -> B {}
  override func f4(x: B, y: B) -> B {}

  override func g(x: AddrOnly?, y: AddrOnly) -> AddrOnly {}
  override func g2(x: AddrOnly, y: AddrOnly) -> AddrOnly {}
  override func g3(x: AddrOnly?, y: AddrOnly) -> AddrOnly {}
  override func g4(x: AddrOnly, y: AddrOnly) -> AddrOnly {}

  override func h<U>(x: U?, y: U) -> U {}
  override func h2<U>(x: U, y: U) -> U {}
  override func h3<U>(x: U?, y: U) -> U {}
  override func h4<U>(x: U, y: U) -> U {}

  override func i(x: Int?, y: Int) -> Int {}
  override func i2(x: Int, y: Int) -> Int {}
  // Int? cannot be represented in ObjC so the override has to be
  // explicitly @nonobjc
  @nonobjc override func i3(x: Int?, y: Int) -> Int {}
  override func i4(x: Int, y: Int) -> Int {}
}

// Inherits the thunked impls from D
class E: D { }

// Overrides w/ its own thunked impls
class F: D {
  override func f(x: B?, y: B) -> B {}
  override func f2(x: B, y: B) -> B {}
  override func f3(x: B?, y: B) -> B {}
  override func f4(x: B, y: B) -> B {}

  override func g(x: AddrOnly?, y: AddrOnly) -> AddrOnly {}
  override func g2(x: AddrOnly, y: AddrOnly) -> AddrOnly {}
  override func g3(x: AddrOnly?, y: AddrOnly) -> AddrOnly {}
  override func g4(x: AddrOnly, y: AddrOnly) -> AddrOnly {}

  override func h<U>(x: U?, y: U) -> U {}
  override func h2<U>(x: U, y: U) -> U {}
  override func h3<U>(x: U?, y: U) -> U {}
  override func h4<U>(x: U, y: U) -> U {}

  override func i(x: Int?, y: Int) -> Int {}
  override func i2(x: Int, y: Int) -> Int {}
  // Int? cannot be represented in ObjC so the override has to be
  // explicitly @nonobjc
  @nonobjc override func i3(x: Int?, y: Int) -> Int {}
  override func i4(x: Int, y: Int) -> Int {}
}

// This test is incorrect in semantic SIL today. But it will be fixed in
// forthcoming commits.
//
// CHECK-LABEL: sil private @$S13vtable_thunks1DC3iuo{{[_0-9a-zA-Z]*}}FTV
// CHECK: bb0([[X:%.*]] : @guaranteed $B, [[Y:%.*]] : @guaranteed $Optional<B>, [[Z:%.*]] : @guaranteed $B, [[W:%.*]] : @guaranteed $D):
// CHECK:   [[WRAP_X:%.*]] = enum $Optional<B>, #Optional.some!enumelt.1, [[X]] : $B
// CHECK:   [[Y_COPY:%.*]] = copy_value [[Y]]
// CHECK:   switch_enum [[Y_COPY]] : $Optional<B>, case #Optional.some!enumelt.1: [[SOME_BB:bb[0-9]+]], case #Optional.none!enumelt: [[NONE_BB:bb[0-9]+]]

// CHECK: [[NONE_BB]]:
// CHECK:   [[DIAGNOSE_UNREACHABLE_FUNC:%.*]] = function_ref @$Ss30_diagnoseUnexpectedNilOptional{{.*}}
// CHECK:   apply [[DIAGNOSE_UNREACHABLE_FUNC]]
// CHECK:   unreachable

// CHECK: [[SOME_BB]]([[UNWRAP_Y:%.*]] : @owned $B):
// CHECK:   [[BORROWED_UNWRAP_Y:%.*]] = begin_borrow [[UNWRAP_Y]]
// CHECK:   [[THUNK_FUNC:%.*]] = function_ref @$S13vtable_thunks1DC3iuo{{.*}}
// CHECK:   [[RES:%.*]] = apply [[THUNK_FUNC]]([[WRAP_X]], [[BORROWED_UNWRAP_Y]], [[Z]], [[W]])
// CHECK:   [[WRAP_RES:%.*]] = enum $Optional<B>, {{.*}} [[RES]]
// CHECK:   return [[WRAP_RES]]

// CHECK-LABEL: sil private @$S13vtable_thunks1DC1g{{[_0-9a-zA-Z]*}}FTV
// TODO: extra copies here
// CHECK:         [[WRAPPED_X_ADDR:%.*]] = init_enum_data_addr [[WRAP_X_ADDR:%.*]] :
// CHECK:         copy_addr [take] {{%.*}} to [initialization] [[WRAPPED_X_ADDR]]
// CHECK:         inject_enum_addr [[WRAP_X_ADDR]]
// CHECK:         [[RES_ADDR:%.*]] = alloc_stack
// CHECK:         apply {{%.*}}([[RES_ADDR]], [[WRAP_X_ADDR]], %2, %3)
// CHECK:         [[DEST_ADDR:%.*]] = init_enum_data_addr %0
// CHECK:         copy_addr [take] [[RES_ADDR]] to [initialization] [[DEST_ADDR]]
// CHECK:         inject_enum_addr %0

class ThrowVariance {
  func mightThrow() throws {}
}

class NoThrowVariance: ThrowVariance {
  override func mightThrow() {}
}

// rdar://problem/20657811

class X<T: B> {
  func foo(x: T) { }
}
class Y: X<D> {
  override func foo(x: D) { }
}

// rdar://problem/21154055
// Ensure reabstraction happens when necessary to get a value in or out of an
// optional.

class Foo {
  func foo(x: @escaping (Int) -> Int) -> ((Int) -> Int)? {}
}

class Bar: Foo {
  override func foo(x: ((Int) -> Int)?) -> (Int) -> Int {}
}

// rdar://problem/21364764
// Ensure we can override an optional with an IUO or vice-versa.
struct S {}

class Aap {
  func cat(b: B?) -> B? {}
  func dog(b: B!) -> B! {}

  func catFast(s: S?) -> S? {}
  func dogFast(s: S!) -> S! {}

  func flip() -> (() -> S?) {}

  func map() -> (S) -> () -> Aap? {}
}

class Noot : Aap {
  override func cat(b: B!) -> B! {}
  override func dog(b: B?) -> B? {}

  override func catFast(s: S!) -> S! {}
  override func dogFast(s: S?) -> S? {}

  override func flip() -> (() -> S) {}

  override func map() -> (S?) -> () -> Noot {}
}

// CHECK-LABEL: sil private @$S13vtable_thunks3BarC3foo{{[_0-9a-zA-Z]*}}FTV : $@convention(method) (@guaranteed @callee_guaranteed (Int) -> Int, @guaranteed Bar) -> @owned Optional<@callee_guaranteed (Int) -> Int>
// CHECK:         [[IMPL:%.*]] = function_ref @$S13vtable_thunks3BarC3foo{{[_0-9a-zA-Z]*}}F
// CHECK:         apply [[IMPL]]

// CHECK-LABEL: sil private @$S13vtable_thunks4NootC4flip{{[_0-9a-zA-Z]*}}FTV
// CHECK:         [[IMPL:%.*]] = function_ref @$S13vtable_thunks4NootC4flip{{[_0-9a-zA-Z]*}}F
// CHECK:         [[INNER:%.*]] = apply %1(%0)
// CHECK:         [[THUNK:%.*]] = function_ref @$S13vtable_thunks1SVIegd_ACSgIegd_TR
// CHECK:         [[OUTER:%.*]] = partial_apply [callee_guaranteed] [[THUNK]]([[INNER]])
// CHECK:         return [[OUTER]]

// CHECK-LABEL: sil shared [transparent] [serializable] [reabstraction_thunk] @$S13vtable_thunks1SVIegd_ACSgIegd_TR
// CHECK:         [[INNER:%.*]] = apply %0()
// CHECK:         [[OUTER:%.*]] = enum $Optional<S>, #Optional.some!enumelt.1, [[INNER]] : $S
// CHECK:         return [[OUTER]] : $Optional<S>

// CHECK-LABEL: sil private @$S13vtable_thunks4NootC3map{{[_0-9a-zA-Z]*}}FTV
// CHECK:         [[IMPL:%.*]] = function_ref @$S13vtable_thunks4NootC3map{{[_0-9a-zA-Z]*}}F
// CHECK:         [[INNER:%.*]] = apply %1(%0)
// CHECK:         [[THUNK:%.*]] = function_ref @$S13vtable_thunks1SVSgAA4NootCIego_Iegyo_AcA3AapCSgIego_Iegyo_TR
// CHECK:         [[OUTER:%.*]] = partial_apply [callee_guaranteed] [[THUNK]]([[INNER]])
// CHECK:         return [[OUTER]]

// CHECK-LABEL: sil shared [transparent] [serializable] [reabstraction_thunk] @$S13vtable_thunks1SVSgAA4NootCIego_Iegyo_AcA3AapCSgIego_Iegyo_TR
// CHECK:         [[ARG:%.*]] = enum $Optional<S>, #Optional.some!enumelt.1, %0
// CHECK:         [[INNER:%.*]] = apply %1([[ARG]])
// CHECK:         [[OUTER:%.*]] = convert_function [[INNER]] : $@callee_guaranteed () -> @owned Noot to $@callee_guaranteed () -> @owned Optional<Aap>
// CHECK:         return [[OUTER]]

// CHECK-LABEL: sil_vtable D {
// CHECK:         #B.iuo!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.f!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.f2!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.f3!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.f4!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.g!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.g2!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.g3!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.g4!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.h!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.h2!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.h3!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.h4!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.i!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.i2!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.i3!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.i4!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F

// CHECK-LABEL: sil_vtable E {
// CHECK:         #B.iuo!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.f!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.f2!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.f3!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.f4!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.g!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.g2!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.g3!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.g4!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.h!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.h2!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.h3!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.h4!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.i!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.i2!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.i3!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.i4!1: {{.*}} : @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}F

// CHECK-LABEL: sil_vtable F {
// CHECK:         #B.iuo!1: {{.*}} : hidden @$S13vtable_thunks1D{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.f!1: {{.*}} : @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.f2!1: {{.*}} : @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.f3!1: {{.*}} : @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.f4!1: {{.*}} : @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.g!1: {{.*}} : hidden @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.g2!1: {{.*}} : hidden @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.g3!1: {{.*}} : hidden @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.g4!1: {{.*}} : @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.h!1: {{.*}} : hidden @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.h2!1: {{.*}} : hidden @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.h3!1: {{.*}} : hidden @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.h4!1: {{.*}} : @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}F
// CHECK:         #B.i!1: {{.*}} : hidden @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.i2!1: {{.*}} : hidden @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.i3!1: {{.*}} : hidden @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}FTV
// CHECK:         #B.i4!1: {{.*}} : @$S13vtable_thunks1F{{[A-Z0-9a-z_]*}}F

// CHECK-LABEL: sil_vtable NoThrowVariance {
// CHECK:         #ThrowVariance.mightThrow!1: {{.*}} : @$S13vtable_thunks{{[A-Z0-9a-z_]*}}F

