func foo() -> Int{ var aaa = 1 + 2 aaa = aaa + 3 if aaa == 3 { aaa = 4 } return aaa } func foo1() -> Int { return 0 } class C { func foo() {} } struct S { func foo() {} } // MARK: - Something struct Something{ internal func foo() { #if os(tvOS) let blah = 42 #else let blah = 0 #endif return blah } } // RUN: %sourcekitd-test -req=range -pos=2:13 -length 5 %s -- %s | %FileCheck %s -check-prefix=CHECK1 // RUN: %sourcekitd-test -req=range -pos=3:3 -length 13 %s -- %s | %FileCheck %s -check-prefix=CHECK2 // RUN: %sourcekitd-test -req=range -pos=3:1 -length 15 %s -- %s | %FileCheck %s -check-prefix=CHECK2 // RUN: %sourcekitd-test -req=range -pos=4:1 -length 25 %s -- %s | %FileCheck %s -check-prefix=CHECK3 // RUN: %sourcekitd-test -req=range -pos=4:1 -length 26 %s -- %s | %FileCheck %s -check-prefix=CHECK3 // RUN: %sourcekitd-test -req=range -pos=4:1 -length 27 %s -- %s | %FileCheck %s -check-prefix=CHECK3 // RUN: %sourcekitd-test -req=range -pos=5:1 -length 12 %s -- %s | %FileCheck %s -check-prefix=CHECK4 // RUN: %sourcekitd-test -req=range -pos=5:2 -length 11 %s -- %s | %FileCheck %s -check-prefix=CHECK4 // RUN: %sourcekitd-test -req=range -pos=8:1 -length 31 %s -- %s | %FileCheck %s -check-prefix=CHECK5 // RUN: %sourcekitd-test -req=range -pos=9:1 -length 25 %s -- %s | %FileCheck %s -check-prefix=CHECK6 // RUN: %sourcekitd-test -req=range -pos=10:1 -length 26 %s -- %s | %FileCheck %s -check-prefix=CHECK7 // RUN: %sourcekitd-test -req=range -pos=3:1 -length 42 %s -- %s | %FileCheck %s -check-prefix=CHECK8 // RUN: %sourcekitd-test -req=range -pos=3:1 -length 55 %s -- %s | %FileCheck %s -check-prefix=CHECK9 // RUN: %sourcekitd-test -req=range -pos=4:1 -length 36 %s -- %s | %FileCheck %s -check-prefix=CHECK10 // RUN: %sourcekitd-test -req=range -pos=8:1 -end-pos 8:32 %s -- %s | %FileCheck %s -check-prefix=CHECK5 // RUN: %sourcekitd-test -req=range -pos=9:1 -end-pos 9:26 %s -- %s | %FileCheck %s -check-prefix=CHECK6 // RUN: %sourcekitd-test -req=range -pos=10:1 -end-pos 10:27 %s -- %s | %FileCheck %s -check-prefix=CHECK7 // RUN: %sourcekitd-test -req=range -pos=3:1 -end-pos=4:26 %s -- %s | %FileCheck %s -check-prefix=CHECK8 // RUN: %sourcekitd-test -req=range -pos=3:1 -end-pos=5:13 %s -- %s | %FileCheck %s -check-prefix=CHECK9 // RUN: %sourcekitd-test -req=range -pos=4:1 -end-pos=5:13 %s -- %s | %FileCheck %s -check-prefix=CHECK10 // RUN: %sourcekitd-test -req=range -pos=12:4 -end-pos=12:21 %s -- %s | %FileCheck %s -check-prefix=CHECK11 // RUN: %sourcekitd-test -req=range -pos=14:12 -end-pos=21:4 %s -- %s | %FileCheck %s -check-prefix=CHECK12 // CHECK1-DAG: source.lang.swift.range.singleexpression // CHECK1-DAG: 1 + 2 // CHECK1-DAG: Int // CHECK2-DAG: source.lang.swift.range.singleexpression // CHECK2-DAG: aaa = aaa + 3 // CHECK2-DAG: () // CHECK3-DAG: source.lang.swift.range.singlestatement // CHECK3-DAG: if aaa == 3 { aaa = 4 } // CHECK3-DAG: // CHECK4-DAG: source.lang.swift.range.singlestatement // CHECK4-DAG: return aaa // CHECK4-DAG: // CHECK5-DAG: source.lang.swift.range.singledeclaration // CHECK5-DAG: func foo1() -> Int { return 0 } // CHECK5-DAG: // CHECK6-DAG: source.lang.swift.range.singledeclaration // CHECK6-DAG: class C { func foo() {} } // CHECK6-DAG: // CHECK7-DAG: source.lang.swift.range.singledeclaration // CHECK7-DAG: struct S { func foo() {} } // CHECK7-DAG: // CHECK8-DAG: source.lang.swift.range.multistatement // CHECK8-DAG: aaa = aaa + 3 // CHECK8-DAG: if aaa == 3 { aaa = 4 } // CHECK8-DAG: // CHECK9-DAG: source.lang.swift.range.multistatement // CHECK9-DAG: aaa = aaa + 3 // CHECK9-DAG: if aaa == 3 { aaa = 4 } // CHECK9-DAG: return aaa // CHECK9-DAG: // CHECK10-DAG: source.lang.swift.range.multistatement // CHECK10-DAG: if aaa == 3 { aaa = 4 } // CHECK10-DAG: return aaa // CHECK10-DAG: // CHECK11-DAG: source.lang.swift.range.invalid // CHECK11-DAG: // CHECK11-DAG: // CHECK12-DAG: source.lang.swift.range.invalid // CHECK12-DAG: // CHECK12-DAG: