// RUN: %target-swift-ide-test -reconstruct-type -source-filename %s | %FileCheck %s -implicit-check-not="FAILURE"
// XFAIL: *

struct Mystruct1 {
// CHECK: decl: struct Mystruct1
  func s1f1() -> Int { return 0 }
// CHECK: decl: func s1f1() -> Int
  var intField = 3
// CHECK: decl: @_hasInitialValue var intField: Int
// CHECK: decl: init(intField: Int)
// CHECK: decl: init()
}
struct MyStruct2 {
// CHECK: decl: struct MyStruct2
  init() {}
// CHECK: decl: init()
  init(x: Int) {}
// CHECK: decl: init(x: Int)
  init(x: Int, y: Int) {}
// CHECK: decl: init(x: Int, y: Int)
}

class Myclass1 {
// CHECK: decl: class Myclass1
  var intField = 4
// CHECK: decl: @_hasInitialValue var intField: Int
// CHECK: decl: init()
}

func f1() {
// CHECK: decl: func f1()
  var s1ins = Mystruct1() // Implicit ctor
// CHECK: decl: @_hasInitialValue var s1ins: Mystruct1
  _ = Mystruct1(intField: 1) // Implicit ctor

  s1ins.intField = 34
// CHECK: type: Mystruct1
// CHECK: type: Int

  var c1ins = Myclass1()
// CHECK: decl: @_hasInitialValue var c1ins: Myclass1
// CHECK: type: Myclass1

  c1ins.intField = 3
// CHECK: type: Int

  s1ins.s1f1()
// CHECK: type: Mystruct1
// CHECK: type: (Mystruct1) -> () -> Int

  if let ifletf1 = Int?(1) {
// FIXME: lookup incorrect for if let binding.
// CHECK: decl: struct Int : {{.*}} for 'ifletf1' usr=s:14swift_ide_test2f1yyF7ifletf1L_Siv
  }
}

class Myclass2 {
// CHECK: decl: class Myclass2
  func f1() {
// CHECK: decl: func f1()

    var arr1 = [1, 2]
// CHECK: decl: @_hasInitialValue var arr1: [Int]
// CHECK: type: Array<Int>

    arr1.append(1)
// FIXME: missing append()
// CHECK: dref: FAILURE	for 'append' usr=s:Sa6appendyyxnF
// CHECK: type: (inout Array<Int>) -> (Int) -> ()

    var arr2 : [Mystruct1]
// CHECK: decl: var arr2: [Mystruct1]
// CHECK: type: Array<Mystruct1>

    arr2.append(Mystruct1())
// CHECK: type: (inout Array<Mystruct1>) -> (Mystruct1) -> ()

    var arr3 : [Myclass1]
// CHECK: decl: var arr3: [Myclass1]
// CHECK: type: Array<Myclass1>

    arr3.append(Myclass1())
// CHECK: type: (inout Array<Myclass1>) -> (Myclass1) -> ()

    _ = Myclass2.init()
// CHECK: dref: init()
  }
}

// CHECK: decl: enum MyEnum
enum MyEnum {
// FIXME
// CHECK: decl:   for 'ravioli'
  case ravioli
// CHECK: decl:   for 'pasta'
  case pasta

// CHECK: decl: func method() -> Int
  func method() -> Int { return 0 }

// CHECK: decl: func compare(_ other: MyEnum) -> Int
  func compare(_ other: MyEnum) -> Int {
    // CHECK: decl: let other: MyEnum
    return 0
  }

// CHECK: decl: mutating func mutatingMethod()
  mutating func mutatingMethod() {}
}

// CHECK: decl: func f2()
func f2() {
// CHECK: type: (MyEnum.Type) -> MyEnum
  var e = MyEnum.pasta

// CHECK: type: (MyEnum) -> () -> Int
  e.method()
// CHECK: (MyEnum) -> (MyEnum) -> Int
  e.compare(e)
// CHECK: (inout MyEnum) -> () -> ()
  e.mutatingMethod()
}

struct MyGenStruct1<T, U: ExpressibleByStringLiteral, V: Sequence> {
// CHECK: decl: struct MyGenStruct1<T, U, V> where U : ExpressibleByStringLiteral, V : Sequence
// FIXME: why are these references to the base type?
// FIXME: TypeReconstruction should support Node::Kind::GenericTypeParamDecl ('fp')
// CHECK: decl: FAILURE for 'T' usr=s:14swift_ide_test12MyGenStruct1V1Txmfp
// CHECK: decl: FAILURE for 'U' usr=s:14swift_ide_test12MyGenStruct1V1Uq_mfp
// CHECK: decl: FAILURE for 'V' usr=s:14swift_ide_test12MyGenStruct1V1Vq0_mfp

  let x: T
// CHECK: decl: let x: T
  let y: U
// CHECK: decl: let y: U
  let z: V
// CHECK: decl: let z: V

  func test000() {
    _ = x
// CHECK: type: T
    _ = y
// CHECK: type: U
    _ = z
// CHECK: type: V
  }

  // CHECK: decl: func takesT(_ t: T)
  func takesT(_ t: T) {
    // CHECK: decl: let t: T
  }
}

let genstruct1 = MyGenStruct1<Int, String, [Float]>(x: 1, y: "", z: [1.0])
// CHECK: decl: @_hasInitialValue let genstruct1: MyGenStruct1<Int, String, [Float]>

func test001() {
// CHECK: decl: func test001()
  _ = genstruct1
// CHECK: type: MyGenStruct1<Int, String, Array<Float>>

  var genstruct2: MyGenStruct1<Int, String, [Int: Int]>
// CHECK: decl: var genstruct2: MyGenStruct1<Int, String, [Int : Int]>
  _ = genstruct2
// CHECK: type: MyGenStruct1<Int, String, Dictionary<Int, Int>>
  _ = genstruct2.x
// CHECK: type: Int
  _ = genstruct2.y
// CHECK: type: String
  _ = genstruct2.z
// CHECK: type: Dictionary<Int, Int>

  genstruct2.takesT(123)
}

// CHECK: decl: protocol P1
protocol P1 {}

// CHECK: decl: func foo1(p: P1)
func foo1(p: P1) {
// CHECK: decl: let p: P1
// CHECK: type: (P1) -> ()
  foo1(p: p)
}

// CHECK: decl: protocol P2
protocol P2 {}

// CHECK: decl: func foo2(p: P1 & P2)
func foo2(p: P1 & P2) {
// CHECK: decl: let p: P1 & P2
  foo2(p: p)
}

// CHECK: func foo3(p: P1 & AnyObject)
func foo3(p: P1 & AnyObject) {
// CHECK: decl: let p: P1 & AnyObject
  foo3(p: p)
}

// CHECK: func foo4(p: Myclass1 & P1 & P2)
func foo4(p: P1 & P2 & Myclass1) {
// CHECK: decl: let p: Myclass1 & P1 & P2
  foo4(p: p)
}

func genericFunction<T : AnyObject>(t: T) {
// CHECK: decl: FAILURE for 'T' usr=s:14swift_ide_test15genericFunction1tyx_tRlzClF1TL_xmfp
  genericFunction(t: t)
}

// CHECK: decl: func takesInOut(fn: (inout Int) -> ())
// CHECK: decl: let fn: (inout Int) -> () for 'fn'
func takesInOut(fn: (inout Int) -> ()) {}

struct Outer {
  struct Inner {
    let x: Int
  }

  struct GenericInner<T> {
    // CHECK: decl: FAILURE for 'T' usr=s:14swift_ide_test5OuterV12GenericInnerV1Txmfp
    let t: T
  }
}

struct GenericOuter<T> {
  // CHECK: decl: FAILURE for 'T' usr=s:14swift_ide_test12GenericOuterV1Txmfp
  struct Inner {
    let t: T
    let x: Int
  }

  struct GenericInner<U> {
    // CHECK: decl: FAILURE for 'U' usr=s:14swift_ide_test12GenericOuterV0D5InnerV1Uqd__mfp
    let t: T
    let u: U
  }
}

// CHECK: decl: func takesGeneric(_ t: Outer.GenericInner<Int>)
func takesGeneric(_ t: Outer.GenericInner<Int>) {
  takesGeneric(t)
}

// CHECK: decl: func takesGeneric(_ t: GenericOuter<Int>.Inner)
func takesGeneric(_ t: GenericOuter<Int>.Inner) {
  takesGeneric(t)
}

// CHECK: decl: func takesGeneric(_ t: GenericOuter<Int>.GenericInner<String>)
func takesGeneric(_ t: GenericOuter<Int>.GenericInner<String>) {
  takesGeneric(t)
}

func hasLocalDecls() {
  func localFunction() {}

  // FIXME
  // CHECK: decl: FAILURE for 'LocalType'
  struct LocalType {
    // CHECK: FAILURE for 'localMethod'
    func localMethod() {}

    // CHECK: FAILURE for 'subscript'
    subscript(x: Int) { get {} set {} }

    // CHECK: decl: FAILURE for ''
    // CHECK: decl: FAILURE for ''
    // CHECK: decl: FAILURE for ''

  }

  // FIXME
  // CHECK: decl: FAILURE for 'LocalClass'
  class LocalClass {
    // CHECK: FAILURE for 'deinit'
    deinit {}

    // CHECK: decl: FAILURE for ''
  }

  // CHECK: decl: FAILURE for 'LocalAlias'
  typealias LocalAlias = LocalType
}

fileprivate struct VeryPrivateData {}

// CHECK: decl: fileprivate func privateFunction(_ d: VeryPrivateData) for 'privateFunction'
fileprivate func privateFunction(_ d: VeryPrivateData) {}

struct HasSubscript {
  // CHECK: decl: subscript(t: Int) -> Int { get set }
  subscript(_ t: Int) -> Int {
    // CHECK: decl: get	for '' usr=s:14swift_ide_test12HasSubscriptVyS2icig
    get {
      return t
    }
    // CHECK: decl: set	for '' usr=s:14swift_ide_test12HasSubscriptVyS2icis
    set {}
  }
}

// FIXME
// CHECK: decl: FAILURE	for 'T' usr=s:14swift_ide_test19HasGenericSubscriptV1Txmfp
struct HasGenericSubscript<T> {
  // CHECK: subscript<U>(t: T) -> U { get set }	for 'subscript' usr=s:14swift_ide_test19HasGenericSubscriptVyqd__xclui
  // FIXME
  // CHECK: decl: FAILURE	for 'U'
  // FIXME
  // CHECK: decl: FAILURE	for 't'
  subscript<U>(_ t: T) -> U {

    // CHECK: decl: get for '' usr=s:14swift_ide_test19HasGenericSubscriptVyqd__xcluig
    // FIXME
    // CHECK: dref: FAILURE	for 't'
    get {
      return t as! U
    }

    // CHECK: decl: set	for '' usr=s:14swift_ide_test19HasGenericSubscriptVyqd__xcluis
    set {}
  }
}

private
// CHECK: decl: private func patatino<T>(_ vers1: T, _ vers2: T) -> Bool where T : Comparable for
func patatino<T: Comparable>(_ vers1: T, _ vers2: T) -> Bool {
  // CHECK: decl: FAILURE   for 'T' usr=s:14swift_ide_test8patatino33_D7B956AE2D93947DFA67A1ECF93EF238LLySbx_xtSLRzlF1TL_xmfp decl
  // CHECK: decl: let vers1: T      for 'vers1' usr=s:14swift_ide_test8patatino33_D7B956AE2D93947DFA67A1ECF93EF238LLySbx_xtSLRzlF5vers1L_xvp
  // CHECK: decl: let vers2: T      for 'vers2' usr=s:14swift_ide_test8patatino33_D7B956AE2D93947DFA67A1ECF93EF238LLySbx_xtSLRzlF5vers2L_xvp
  return vers1 < vers2;
}
