Skip to content

Commit e1a4c5f

Browse files
committed
[SourceKit][CursorInfo] Add a field for the source language the symbol was originally defined in
Resolves rdar://75446903
1 parent 179a707 commit e1a4c5f

File tree

17 files changed

+93
-0
lines changed

17 files changed

+93
-0
lines changed

test/SourceKit/CursorInfo/cursor_info.swift

Lines changed: 29 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import Foo
2+
import Module
3+
4+
class FromSwift {}
5+
@objc class StillFromSwift {}
6+
func test(fromObjC: FooClassDerived,
7+
_: FromSwiftMod,
8+
_: FromSwiftModObjC) {}
9+
10+
// SWIFT: source.lang.swift{{$}}
11+
// OBJC: source.lang.objc{{$}}
12+
13+
// REQUIRES: objc_interop
14+
// RUN: %empty-directory(%t)
15+
// RUN: echo '// swift-interface-format-version: 1.0' > %t/Module.swiftinterface
16+
// RUN: echo '// swift-module-flags: -swift-version 5 -enable-library-evolution -module-name Module' >> %t/Module.swiftinterface
17+
// RUN: echo ' public class FromSwiftMod {}' >> %t/Module.swiftinterface
18+
// RUN: echo ' @objc public class FromSwiftModObjC {}' >> %t/Module.swiftinterface
19+
20+
// RUN: %sourcekitd-test -req=cursor -pos=4:7 %s -- -I %t -F %S/../Inputs/libIDE-mock-sdk %s | %FileCheck -check-prefix=SWIFT %s
21+
// RUN: %sourcekitd-test -req=cursor -pos=5:13 %s -- -I %t -F %S/../Inputs/libIDE-mock-sdk %s | %FileCheck -check-prefix=SWIFT %s
22+
// RUN: %sourcekitd-test -req=cursor -pos=6:21 %s -- -I %t -F %S/../Inputs/libIDE-mock-sdk %s | %FileCheck -check-prefix=OBJC %s
23+
// RUN: %sourcekitd-test -req=cursor -pos=7:14 %s -- -I %t -F %S/../Inputs/libIDE-mock-sdk %s | %FileCheck -check-prefix=SWIFT %s
24+
// RUN: %sourcekitd-test -req=cursor -pos=8:14 %s -- -I %t -F %S/../Inputs/libIDE-mock-sdk %s | %FileCheck -check-prefix=SWIFT %s

test/SourceKit/CursorInfo/cursor_opaque_result.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ func test(value: MyStruct) {
1919

2020
// OPAQUE: foo()
2121
// OPAQUE-NEXT: s:8MyModule0A6StructV3fooQryF
22+
// OPAQUE-NEXT: source.lang.swift
2223
// OPAQUE-NEXT: (MyStruct) -> () -> some Comparable
2324
// OPAQUE-NEXT: $sQrycD
2425
// OPAQUE-NEXT: <Container>$s8MyModule0A6StructVD</Container>
@@ -28,6 +29,7 @@ func test(value: MyStruct) {
2829

2930
// ASSOC: bar()
3031
// ASSOC-NEXT: s:8MyModule1PPAAE3bar5AssocQzyF
32+
// ASSOC-NEXT: source.lang.swift
3133
// ASSOC-NEXT: <Self where Self : P> (Self) -> () -> Self.Assoc
3234
// ASSOC-NEXT: $s5AssocQzycD
3335
// ASSOC-NEXT: <Container>$s8MyModule0A6StructVD</Container>

test/SourceKit/CursorInfo/cursor_some_type.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ func test(value: S) {
2323
// DECLSITE: source.lang.swift.decl.function.method.instance (13:15-13:27)
2424
// DECLSITE-NEXT: foo(x:)
2525
// DECLSITE-NEXT: s:4Test1SV3foo1xQrx_tlF
26+
// DECLSITE-NEXT: source.lang.swift
2627
// DECLSITE-NEXT: <T> (S) -> (T) -> some Base & Proto
2728
// DECLSITE-NEXT: $s1xQrx_tcluD
2829
// DECLSITE-NEXT: <Declaration>public func foo&lt;T&gt;(x: <Type usr=[[T_USR:.*]]>T</Type>) -&gt; some <Type usr=[[Base_USR:.*]]>Base</Type> &amp; <Type usr=[[Proto_USR:.*]]>Proto</Type></Declaration>
@@ -32,6 +33,7 @@ func test(value: S) {
3233
// PROTO_AFTER_SOME: source.lang.swift.ref.protocol (1:17-1:22)
3334
// PROTO_AFTER_SOME-NEXT: Proto
3435
// PROTO_AFTER_SOME-NEXT: s:4Test5ProtoP
36+
// PROTO_AFTER_SOME-NEXT: source.lang.swift
3537
// PROTO_AFTER_SOME-NEXT: Proto.Protocol
3638
// PROTO_AFTER_SOME-NEXT: $s4Test5Proto_pmD
3739
// PROTO_AFTER_SOME-NEXT: <Declaration>public protocol Proto</Declaration>
@@ -41,6 +43,7 @@ func test(value: S) {
4143
// USESITE: source.lang.swift.ref.function.method.instance (13:15-13:27)
4244
// USESITE-NEXT: foo(x:)
4345
// USESITE-NEXT: s:4Test1SV3foo1xQrx_tlF
46+
// USESITE-NEXT: source.lang.swift
4447
// USESITE-NEXT: <T> (S) -> (T) -> some Base & Proto
4548
// USESITE-NEXT: $s1xQrx_tcluD
4649
// USESITE-NEXT: <Container>$s4Test1SVD</Container>

test/SourceKit/CursorInfo/cursor_stdlib.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ func foo3(a: Float, b: Bool) {}
3030
// CHECK-OVERLAY: source.lang.swift.ref.var.global
3131
// CHECK-OVERLAY-NEXT: NSUTF8StringEncoding
3232
// CHECK-OVERLAY-NEXT: s:10Foundation20NSUTF8StringEncodingSuv
33+
// CHECK-OVERLAY-NEXT: source.lang.swift
3334
// CHECK-OVERLAY-NEXT: UInt
3435
// CHECK-OVERLAY-NEXT: $sSuD
3536
// CHECK-OVERLAY-NEXT: Foundation

test/SourceKit/CursorInfo/cursor_swiftonly_systemmodule.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ func test() {
3131
// CHECK: source.lang.swift.ref.function.free ()
3232
// CHECK-NEXT: someFunc()
3333
// CHECK-NEXT: s:10SomeModule8someFuncyyF
34+
// CHECK-NEXT: source.lang.swift
3435
// CHECK-NEXT: () -> ()
3536
// CHECK-NEXT: $syycD
3637
// CHECK-NEXT: SomeModule

test/SourceKit/CursorInfo/cursor_usr.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ func foo(x: FooStruct1) -> S1 {}
1919
// CHECK_SANITY1: source.lang.swift.decl.struct (5:8-5:10)
2020
// CHECK_SANITY1-NEXT: S1
2121
// CHECK_SANITY1-NEXT: s:10cursor_usr2S1
22+
// CHECK_SANITY1-NEXT: source.lang.swift
2223
// CHECK_SANITY1-NEXT: S1.Type
2324
// CHECK_SANITY1-NEXT: $s10cursor_usr2S1VmD
2425
// CHECK_SANITY1-NEXT: <Declaration>struct S1</Declaration>

test/SourceKit/CursorInfo/rdar_34348776.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public typealias Aliased = Alias
77
// CHECK: source.lang.swift.decl.typealias (3:18-3:25)
88
// CHECK-NEXT: Aliased
99
// CHECK-NEXT: s:13rdar_343487767Aliaseda
10+
// CHECK-NEXT: source.lang.swift
1011
// CHECK-NEXT: Alias.Type
1112
// CHECK-NEXT: $s13rdar_343487765AliasamD
1213
// CHECK-NEXT: <Declaration>public typealias Aliased = <Type usr="s:13rdar_343487765Aliasa">Alias</Type></Declaration>

test/SourceKit/CursorInfo/result_builder.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ func testAcceptColorTagged(i: Int, s: String) {
4848
// ATTR_NAME: source.lang.swift.ref.struct (19:8-19:21)
4949
// ATTR_NAME-NEXT: TaggedBuilder
5050
// ATTR_NAME-NEXT: s:11BuilderTest06TaggedA0V
51+
// ATTR_NAME-NEXT: source.lang.swift
5152
// ATTR_NAME-NEXT: TaggedBuilder<Tag>.Type
5253
// ATTR_NAME-NEXT: $s11BuilderTest06TaggedA0VyxGmD
5354
// ATTR_NAME-NEXT: <Declaration>@resultBuilder struct TaggedBuilder&lt;Tag&gt;</Declaration>
@@ -58,6 +59,7 @@ func testAcceptColorTagged(i: Int, s: String) {
5859
// ATTR_GENERICARG: source.lang.swift.ref.enum (31:6-31:11)
5960
// ATTR_GENERICARG-NEXT: Color
6061
// ATTR_GENERICARG-NEXT: s:11BuilderTest5ColorO
62+
// ATTR_GENERICARG-NEXT: source.lang.swift
6163
// ATTR_GENERICARG-NEXT: Color.Type
6264
// ATTR_GENERICARG-NEXT: $s11BuilderTest5ColorOmD
6365
// ATTR_GENERICARG-NEXT: <Declaration>enum Color</Declaration>
@@ -68,6 +70,7 @@ func testAcceptColorTagged(i: Int, s: String) {
6870
// CALL_BUILDERFUNC: source.lang.swift.ref.function.free (35:6-35:78)
6971
// CALL_BUILDERFUNC-NEXT: acceptColorTagged(body:)
7072
// CALL_BUILDERFUNC-NEXT: s:11BuilderTest17acceptColorTagged4bodyyxAA0D0OXE_tlF
73+
// CALL_BUILDERFUNC-NEXT: source.lang.swift
7174
// CALL_BUILDERFUNC-NEXT: <Result> (body: (Color) -> Result) -> ()
7275
// CALL_BUILDERFUNC-NEXT: $s4bodyyx11BuilderTest5ColorOXE_tcluD
7376
// CALL_BUILDERFUNC-NEXT: <Declaration>func acceptColorTagged&lt;Result&gt;(@<Type usr="s:11BuilderTest06TaggedA0V">TaggedBuilder</Type>&lt;<Type usr="s:11BuilderTest5ColorO">Color</Type>&gt; body: (<Type usr="s:11BuilderTest5ColorO">Color</Type>) -&gt; <Type usr="s:11BuilderTest17acceptColorTagged4bodyyxAA0D0OXE_tlF6ResultL_xmfp">Result</Type>)</Declaration>
@@ -78,6 +81,7 @@ func testAcceptColorTagged(i: Int, s: String) {
7881
// CLOSUREPARAM_DECL: source.lang.swift.decl.var.parameter (40:23-40:28)
7982
// CLOSUREPARAM_DECL-NEXT: color
8083
// CLOSUREPARAM_DECL-NEXT: s:11BuilderTest21testAcceptColorTagged1i1sySi_SStFAA0F0VyAA0E0OSiG_AFyAHSSGtAHXEfU_5colorL_AHvp
84+
// CLOSUREPARAM_DECL-NEXT: source.lang.swift
8185
// CLOSUREPARAM_DECL-NEXT: Color
8286
// CLOSUREPARAM_DECL-NEXT: $s11BuilderTest5ColorOD
8387
// CLOSUREPARAM_DECL-NEXT: <Declaration>let color: <Type usr="s:11BuilderTest5ColorO">Color</Type></Declaration>
@@ -88,6 +92,7 @@ func testAcceptColorTagged(i: Int, s: String) {
8892
// CLOSUREPARAM_USER: source.lang.swift.ref.var.local (40:23-40:28)
8993
// CLOSUREPARAM_USER-NEXT: color
9094
// CLOSUREPARAM_USER-NEXT: s:11BuilderTest21testAcceptColorTagged1i1sySi_SStFAA0F0VyAA0E0OSiG_AFyAHSSGtAHXEfU_5colorL_AHvp
95+
// CLOSUREPARAM_USER-NEXT: source.lang.swift
9196
// CLOSUREPARAM_USER-NEXT: Color
9297
// CLOSUREPARAM_USER-NEXT: $s11BuilderTest5ColorOD
9398
// CLOSUREPARAM_USER-NEXT: <Declaration>let color: <Type usr="s:11BuilderTest5ColorO">Color</Type></Declaration>
@@ -98,6 +103,7 @@ func testAcceptColorTagged(i: Int, s: String) {
98103
// CAPTURED_VALUE: source.lang.swift.ref.var.local (39:28-39:29)
99104
// CAPTURED_VALUE-NEXT: i
100105
// CAPTURED_VALUE-NEXT: s:11BuilderTest21testAcceptColorTagged1i1sySi_SStFACL_Sivp
106+
// CAPTURED_VALUE-NEXT: source.lang.swift
101107
// CAPTURED_VALUE-NEXT: Int
102108
// CAPTURED_VALUE-NEXT: $sSiD
103109
// CAPTURED_VALUE-NEXT: <Declaration>let i: <Type usr="s:Si">Int</Type></Declaration>
@@ -108,6 +114,7 @@ func testAcceptColorTagged(i: Int, s: String) {
108114
// CAPTURED_VALUE_METHOD: source.lang.swift.ref.function.method.instance (10:8-10:28)
109115
// CAPTURED_VALUE_METHOD: tag(_:)
110116
// CAPTURED_VALUE_METHOD: s:11BuilderTest8TaggablePAAE3tagyAA6TaggedVyqd__xGqd__lF
117+
// CAPTURED_VALUE_METHOD: source.lang.swift
111118
// CAPTURED_VALUE_METHOD: <Self, Tag where Self : Taggable> (Self) -> (Tag) -> Tagged<Tag, Self>
112119
// CAPTURED_VALUE_METHOD: $sy11BuilderTest6TaggedVyqd__xGqd__cluD
113120
// CAPTURED_VALUE_METHOD: <Container>$sSiD</Container>

test/SourceKit/InterfaceGen/gen_stdlib.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ var x: Int
3232
// CHECK1: source.lang.swift.ref.struct ()
3333
// CHECK1-NEXT: Int
3434
// CHECK1-NEXT: s:Si
35+
// CHECK1-NEXT: source.lang.swift
3536
// CHECK1-NEXT: Int.Type
3637
// CHECK1-NEXT: $s
3738
// CHECK1-NEXT: Swift{{$}}

0 commit comments

Comments
 (0)