// RUN: %target-swift-frontend  -O -Xllvm -sil-disable-pass="Function Signature Optimization" -emit-sil -primary-file %s | FileCheck %s

// We can't deserialize apply_inst with subst lists. When radar://14443304
// is fixed then we should convert this test to a SIL test.

struct YYY<T> {
  @inline(never)
  init(t : T) {m_t = t}
  @inline(never) mutating
  func AAA9(t t : T) -> Int { return AAA8(t: t) }
  @inline(never) mutating
  func AAA8(t t : T) -> Int { return AAA7(t: t) }
  @inline(never) mutating
  func AAA7(t t : T) -> Int { return AAA6(t: t) }
  @inline(never) mutating
  func AAA6(t t : T) -> Int { return AAA5(t: t) }
  @inline(never) mutating
  func AAA5(t t : T) -> Int { return AAA4(t: t) }
  @inline(never) mutating
  func AAA4(t t : T) -> Int { return AAA3(t: t) }
  @inline(never) mutating
  func AAA3(t t : T) -> Int { return AAA2(t: t) }
  @inline(never) mutating
  func AAA2(t t : T) -> Int { return AAA1(t: t) }
  @inline(never) mutating
  func AAA1(t t : T) -> Int { return AAA0(t: t) }
  @inline(never) mutating
  func AAA0(t t : T) -> Int { return foo(t: t) }
  @inline(never) mutating
  func foo(t t : T) -> Int { m_t = t; return 4 }
  var m_t : T
}

func exp1() {
  var II = YYY<Int>(t: 5)
  print(II.AAA9(t: 4), terminator: "")
}
//CHECK: sil shared [noinline] @_TTSg5Si___TFV16specialize_chain3YYY4AAA9
//CHECK: sil shared [noinline] @_TTSg5Si___TFV16specialize_chain3YYY4AAA8
//CHECK: sil shared [noinline] @_TTSg5Si___TFV16specialize_chain3YYY4AAA7
//CHECK: sil shared [noinline] @_TTSg5Si___TFV16specialize_chain3YYY4AAA6
//CHECK: sil shared [noinline] @_TTSg5Si___TFV16specialize_chain3YYY4AAA5
//CHECK: sil shared [noinline] @_TTSg5Si___TFV16specialize_chain3YYY4AAA4
//CHECK: sil shared [noinline] @_TTSg5Si___TFV16specialize_chain3YYY4AAA3
//CHECK: sil shared [noinline] @_TTSg5Si___TFV16specialize_chain3YYY4AAA2
//CHECK: sil shared [noinline] @_TTSg5Si___TFV16specialize_chain3YYY4AAA1
//CHECK: exp1
//CHECK: function_ref @_TTSg5Si___TFV16specialize_chain3YYYC
//CHECK: function_ref @_TTSg5Si___TFV16specialize_chain3YYY4AAA9
//CHECK: return
