blob: 09d3ff945bc209911fdedaa31cc0f861e375b300 [file] [log] [blame]
// XFAIL: broken_std_regex
// RUN: %complete-test -top=0 -tok=TOP_LEVEL_0 %s | %FileCheck %s -check-prefix=TOP_LEVEL_0
// RUN: %complete-test -top=0 -tok=TOP_LEVEL_1 %s | %FileCheck %s -check-prefix=TOP_LEVEL_1
// RUN: %complete-test -top=0 -tok=TOP_LEVEL_2 %s | %FileCheck %s -check-prefix=TOP_LEVEL_2
// RUN: %complete-test -top=0 -tok=TOP_LEVEL_3 %s | %FileCheck %s -check-prefix=TOP_LEVEL_3
// RUN: %complete-test -top=0 -group=none -tok=CROSS_CONTEXT_0 %s | %FileCheck %s -check-prefix=CROSS_CONTEXT_0
// RUN: %complete-test -top=0 -group=none -tok=FROM_METHOD_0 %s | %FileCheck %s -check-prefix=FROM_METHOD_0
let valueA = [0]
let valueS = ""
let valueZ = 1
func takeInt(x: Int, y: Int)
func takeIntOpt(x: Int, y: Int?)
func takeString(x: Int, y: String)
func takeAny(x: Int, y: Any)
takeInt(1, y: #^TOP_LEVEL_0^#)
// TOP_LEVEL_0-NOT: nil
// TOP_LEVEL_0: valueZ
// TOP_LEVEL_0: Int
// TOP_LEVEL_0: valueA
// TOP_LEVEL_0: valueS
takeString(1, y: #^TOP_LEVEL_1^#)
// TOP_LEVEL_1: valueS
// TOP_LEVEL_1: String
// TOP_LEVEL_1: valueA
// TOP_LEVEL_1: valueZ
takeAny(1, y: #^TOP_LEVEL_2^#)
// TOP_LEVEL_2: valueA
// TOP_LEVEL_2: valueS
// TOP_LEVEL_2: valueZ
takeIntOpt(1, y: #^TOP_LEVEL_3^#)
// TOP_LEVEL_3: nil
// TOP_LEVEL_3: valueZ
// TOP_LEVEL_3: valueA
// TOP_LEVEL_3: valueS
func testCrossContext(x: Int, y: String, z: Any) {
takeInt(1, y: #^CROSS_CONTEXT_0^#)
}
// CROSS_CONTEXT_0: x
// CROSS_CONTEXT_0: valueZ
// CROSS_CONTEXT_0: Int
// CROSS_CONTEXT_0: y
// CROSS_CONTEXT_0: z
// CROSS_CONTEXT_0: valueA
// CROSS_CONTEXT_0: valueS
struct FromMethod {
func valueA() -> [Int] { return [0] }
func valueS() -> String { return "" }
func valueZ() -> Int { return 1 }
}
func testFromMethod(x: FromMethod) {
takeInt(1, y: x.#^FROM_METHOD_0^#)
}
// FROM_METHOD_0: valueZ()
// FROM_METHOD_0: valueA()
// FROM_METHOD_0: valueS()