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

func f0(_ x: Int) -> Int { return 0 }
func f0(_ x: Float) -> Float { return 0.0 }
func f1() -> Int { return 0 }
func f1() -> Float { return 0.0 }

struct Y {
  func f0(_ x: Int) -> Int { return 0 }
  func f0(_ x: Float) -> Float { return 0.0 }
  func f1() -> Int { return 0 }
  func f1() -> Float { return 0.0 }
}

func testParenOverloads(_ x: inout Int, y: Y) {
  x = f0(x)
  x = (f0)(x)
  x = ((f0))(x)
  x = f1()
  x = (f1)()
  x = ((f1))()

  x = y.f0(x)
  x = (y.f0)(x)
  x = ((y.f0))(x)
  x = y.f1()
  x = (y.f1)()
  x = ((y.f1))()
}
