// RUN: %target-typecheck-verify-swift

func dict_to_array(_: Dictionary<String, Int>) -> [(String, Int)] {
  return Array<(String, Int)>()
}

func infer_type(_ i: Int, f: Float) {
  // Simple types
  var i2 = i
  i2 = i

  // Tuples
  var (i3, f2) = (i, f)
  var i_and_f = (i, f)
  i3 = i2
  f2 = f
  i_and_f = (i3, f2)
  _ = i_and_f
}

func infer_generic_args() {
  // Simple types
  let x : Dictionary = ["Hello" : 1]
  var i : Int = x["Hello"]!

  // Tuples
  let (d, s) : (Dictionary, Array) = ( ["Hello" : 1], [1, 2, 3] )
  i = d["Hello"]!
  i = s[i]

  // Function types
  let f : (Dictionary) -> Array = dict_to_array
  _ = f(d) as [(String, Int)]
}

