Skip to content

Commit 4ced0af

Browse files
author
Nathan Hawes
authored
Merge pull request #22764 from nathawes/add-implicit-to-index-request-output
[sourcekitd] Expose the 'implicit' symbol role in the 'index' request response
2 parents cf6addc + e5e9dc6 commit 4ced0af

17 files changed

+69
-30
lines changed

test/SourceKit/Indexing/Inputs/implicit-vis/a.index.response

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,16 @@
2929
key.usr: "s:12implicit_vis1AC1bAA1BCvg",
3030
key.line: 2,
3131
key.column: 6,
32-
key.is_dynamic: 1
32+
key.is_dynamic: 1,
33+
key.is_implicit: 1
3334
},
3435
{
3536
key.kind: source.lang.swift.decl.function.accessor.setter,
3637
key.usr: "s:12implicit_vis1AC1bAA1BCvs",
3738
key.line: 2,
3839
key.column: 6,
39-
key.is_dynamic: 1
40+
key.is_dynamic: 1,
41+
key.is_implicit: 1
4042
}
4143
]
4244
},

test/SourceKit/Indexing/Inputs/implicit-vis/b.index.response

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,16 @@
2929
key.usr: "s:12implicit_vis1BC1aAA1ACvg",
3030
key.line: 2,
3131
key.column: 6,
32-
key.is_dynamic: 1
32+
key.is_dynamic: 1,
33+
key.is_implicit: 1
3334
},
3435
{
3536
key.kind: source.lang.swift.decl.function.accessor.setter,
3637
key.usr: "s:12implicit_vis1BC1aAA1ACvs",
3738
key.line: 2,
3839
key.column: 6,
39-
key.is_dynamic: 1
40+
key.is_dynamic: 1,
41+
key.is_implicit: 1
4042
}
4143
]
4244
},

test/SourceKit/Indexing/Inputs/test_module.index.response

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
key.entities: [
3333
{
3434
key.kind: source.lang.swift.decl.function.constructor,
35-
key.usr: "s:11test_module5EmptyCACycfc"
35+
key.usr: "s:11test_module5EmptyCACycfc",
36+
key.is_implicit: 1
3637
}
3738
]
3839
},
@@ -49,12 +50,14 @@
4950
{
5051
key.kind: source.lang.swift.decl.function.accessor.getter,
5152
key.usr: "s:11test_module7TwoIntsC1xSivg",
52-
key.is_dynamic: 1
53+
key.is_dynamic: 1,
54+
key.is_implicit: 1
5355
},
5456
{
5557
key.kind: source.lang.swift.decl.function.accessor.setter,
5658
key.usr: "s:11test_module7TwoIntsC1xSivs",
57-
key.is_dynamic: 1
59+
key.is_dynamic: 1,
60+
key.is_implicit: 1
5861
}
5962
]
6063
},
@@ -66,12 +69,14 @@
6669
{
6770
key.kind: source.lang.swift.decl.function.accessor.getter,
6871
key.usr: "s:11test_module7TwoIntsC1ySivg",
69-
key.is_dynamic: 1
72+
key.is_dynamic: 1,
73+
key.is_implicit: 1
7074
},
7175
{
7276
key.kind: source.lang.swift.decl.function.accessor.setter,
7377
key.usr: "s:11test_module7TwoIntsC1ySivs",
74-
key.is_dynamic: 1
78+
key.is_dynamic: 1,
79+
key.is_implicit: 1
7580
}
7681
]
7782
},
@@ -108,7 +113,8 @@
108113
},
109114
{
110115
key.kind: source.lang.swift.decl.function.constructor,
111-
key.usr: "s:11test_module16ComputedPropertyCACycfc"
116+
key.usr: "s:11test_module16ComputedPropertyCACycfc",
117+
key.is_implicit: 1
112118
}
113119
]
114120
},
@@ -141,7 +147,8 @@
141147
key.entities: [
142148
{
143149
key.kind: source.lang.swift.decl.function.constructor,
144-
key.usr: "s:11test_module2C2CACycfc"
150+
key.usr: "s:11test_module2C2CACycfc",
151+
key.is_implicit: 1
145152
}
146153
]
147154
},

test/SourceKit/Indexing/index_bad_modulename.swift.response

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,15 @@
6565
key.kind: source.lang.swift.decl.function.accessor.getter,
6666
key.usr: "s:4main1vSo8NSObjectCSgvg",
6767
key.line: 9,
68-
key.column: 5
68+
key.column: 5,
69+
key.is_implicit: 1
6970
},
7071
{
7172
key.kind: source.lang.swift.decl.function.accessor.setter,
7273
key.usr: "s:4main1vSo8NSObjectCSgvs",
7374
key.line: 9,
74-
key.column: 5
75+
key.column: 5,
76+
key.is_implicit: 1
7577
}
7678
]
7779
},

test/SourceKit/Indexing/index_big_array.swift.response

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,15 @@
2121
key.kind: source.lang.swift.decl.function.accessor.getter,
2222
key.usr: "s:9big_array15gCubeVertexDataSaySfGvg",
2323
key.line: 1,
24-
key.column: 5
24+
key.column: 5,
25+
key.is_implicit: 1
2526
},
2627
{
2728
key.kind: source.lang.swift.decl.function.accessor.setter,
2829
key.usr: "s:9big_array15gCubeVertexDataSaySfGvs",
2930
key.line: 1,
30-
key.column: 5
31+
key.column: 5,
32+
key.is_implicit: 1
3133
}
3234
]
3335
},

test/SourceKit/Indexing/index_constructors.swift.response

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,16 @@
5252
key.usr: "s:18index_constructors11HorseObjectC4nameXevg",
5353
key.line: 9,
5454
key.column: 7,
55-
key.is_dynamic: 1
55+
key.is_dynamic: 1,
56+
key.is_implicit: 1
5657
},
5758
{
5859
key.kind: source.lang.swift.decl.function.accessor.setter,
5960
key.usr: "s:18index_constructors11HorseObjectC4nameXevs",
6061
key.line: 9,
6162
key.column: 7,
62-
key.is_dynamic: 1
63+
key.is_dynamic: 1,
64+
key.is_implicit: 1
6365
}
6466
]
6567
},

test/SourceKit/Indexing/index_enum_case.swift.response

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,15 @@
111111
key.kind: source.lang.swift.decl.function.accessor.getter,
112112
key.usr: "s:15index_enum_case1eAA1EOvg",
113113
key.line: 21,
114-
key.column: 5
114+
key.column: 5,
115+
key.is_implicit: 1
115116
},
116117
{
117118
key.kind: source.lang.swift.decl.function.accessor.setter,
118119
key.usr: "s:15index_enum_case1eAA1EOvs",
119120
key.line: 21,
120-
key.column: 5
121+
key.column: 5,
122+
key.is_implicit: 1
121123
}
122124
]
123125
},

test/SourceKit/Indexing/index_forbid_typecheck.swift.response

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,15 @@
2121
key.kind: source.lang.swift.decl.function.accessor.getter,
2222
key.usr: "s:16forbid_typecheck10globalPrimSivg",
2323
key.line: 1,
24-
key.column: 5
24+
key.column: 5,
25+
key.is_implicit: 1
2526
},
2627
{
2728
key.kind: source.lang.swift.decl.function.accessor.setter,
2829
key.usr: "s:16forbid_typecheck10globalPrimSivs",
2930
key.line: 1,
30-
key.column: 5
31+
key.column: 5,
32+
key.is_implicit: 1
3133
}
3234
]
3335
},
@@ -42,7 +44,8 @@
4244
key.kind: source.lang.swift.ref.function.accessor.getter,
4345
key.usr: "s:16forbid_typecheck9globalSecSivg",
4446
key.line: 1,
45-
key.column: 18
47+
key.column: 18,
48+
key.is_implicit: 1
4649
}
4750
]
4851
},
@@ -87,7 +90,8 @@
8790
key.line: 5,
8891
key.column: 20,
8992
key.receiver_usr: "s:16forbid_typecheck6ClsSecC",
90-
key.is_dynamic: 1
93+
key.is_dynamic: 1,
94+
key.is_implicit: 1
9195
}
9296
]
9397
}

test/SourceKit/Indexing/index_is_test_candidate.swift.response

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@
3535
key.kind: source.lang.swift.decl.function.constructor,
3636
key.usr: "s:23index_is_test_candidate8MyStructVACycfc",
3737
key.line: 12,
38-
key.column: 8
38+
key.column: 8,
39+
key.is_implicit: 1
3940
}
4041
]
4142
},
@@ -50,7 +51,8 @@
5051
key.kind: source.lang.swift.decl.function.constructor,
5152
key.usr: "s:23index_is_test_candidate10XCTestCaseCACycfc",
5253
key.line: 15,
53-
key.column: 7
54+
key.column: 7,
55+
key.is_implicit: 1
5456
}
5557
]
5658
},
@@ -90,6 +92,7 @@
9092
key.usr: "s:23index_is_test_candidate14MyPrivateClass33_E06F4E7BC5F577AB6E2EC6D3ECA1C8B9LLCADycfc",
9193
key.line: 16,
9294
key.column: 43,
95+
key.is_implicit: 1,
9396
key.related: [
9497
{
9598
key.kind: source.lang.swift.ref.function.constructor,
@@ -212,6 +215,7 @@
212215
key.usr: "s:23index_is_test_candidate7MyClassCACycfc",
213216
key.line: 20,
214217
key.column: 35,
218+
key.is_implicit: 1,
215219
key.related: [
216220
{
217221
key.kind: source.lang.swift.ref.function.constructor,

test/SourceKit/Indexing/index_is_test_candidate_objc.swift.response

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@
3535
key.kind: source.lang.swift.decl.function.constructor,
3636
key.usr: "s:28index_is_test_candidate_objc8MyStructVACycfc",
3737
key.line: 11,
38-
key.column: 8
38+
key.column: 8,
39+
key.is_implicit: 1
3940
}
4041
]
4142
},
@@ -50,7 +51,8 @@
5051
key.kind: source.lang.swift.decl.function.constructor,
5152
key.usr: "s:28index_is_test_candidate_objc10XCTestCaseCACycfc",
5253
key.line: 14,
53-
key.column: 7
54+
key.column: 7,
55+
key.is_implicit: 1
5456
}
5557
]
5658
},
@@ -91,6 +93,7 @@
9193
key.usr: "s:28index_is_test_candidate_objc14MyPrivateClass33_32FED72643814BE1A523406CD2E729AALLCADycfc",
9294
key.line: 15,
9395
key.column: 43,
96+
key.is_implicit: 1,
9497
key.related: [
9598
{
9699
key.kind: source.lang.swift.ref.function.constructor,
@@ -214,6 +217,7 @@
214217
key.usr: "s:28index_is_test_candidate_objc7MyClassCACycfc",
215218
key.line: 19,
216219
key.column: 35,
220+
key.is_implicit: 1,
217221
key.related: [
218222
{
219223
key.kind: source.lang.swift.ref.function.constructor,

test/SourceKit/Indexing/index_operators.swift.response

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,8 @@
153153
key.kind: source.lang.swift.decl.function.constructor,
154154
key.usr: "s:15index_operators7StructBVACycfc",
155155
key.line: 12,
156-
key.column: 8
156+
key.column: 8,
157+
key.is_implicit: 1
157158
}
158159
]
159160
}

test/SourceKit/Indexing/rdar_21602898.swift.response

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@
6565
key.kind: source.lang.swift.decl.function.constructor,
6666
key.usr: "s:13rdar_216028981CCACycfc",
6767
key.line: 5,
68-
key.column: 7
68+
key.column: 7,
69+
key.is_implicit: 1
6970
}
7071
]
7172
}

test/SourceKit/Indexing/sr_3815.swift.response

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@
100100
key.kind: source.lang.swift.decl.function.constructor,
101101
key.usr: "s:7sr_38151SVACycfc",
102102
key.line: 9,
103-
key.column: 8
103+
key.column: 8,
104+
key.is_implicit: 1
104105
}
105106
]
106107
}

tools/SourceKit/include/SourceKit/Core/LangSupport.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ struct EntityInfo {
4444
StringRef ReceiverUSR;
4545
bool IsDynamic = false;
4646
bool IsTestCandidate = false;
47+
bool IsImplicit = false;
4748
unsigned Line = 0;
4849
unsigned Column = 0;
4950
ArrayRef<UIdent> Attrs;

tools/SourceKit/lib/SwiftLang/SwiftIndexing.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ class SKIndexDataConsumer : public IndexDataConsumer {
118118
info.Column = symbol.column;
119119
info.ReceiverUSR = symbol.getReceiverUSR();
120120
info.IsDynamic = symbol.roles & (unsigned)SymbolRole::Dynamic;
121+
info.IsImplicit = symbol.roles & (unsigned)SymbolRole::Implicit;
121122
info.IsTestCandidate = symbol.symInfo.Properties & SymbolProperty::UnitTest;
122123
std::vector<UIdent> uidAttrs;
123124
if (!isRef) {

tools/SourceKit/tools/sourcekitd/lib/API/Requests.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,6 +1240,8 @@ bool SKIndexingConsumer::startSourceEntity(const EntityInfo &Info) {
12401240
Elem.set(KeyReceiverUSR, Info.ReceiverUSR);
12411241
if (Info.IsDynamic)
12421242
Elem.setBool(KeyIsDynamic, true);
1243+
if (Info.IsImplicit)
1244+
Elem.setBool(KeyIsImplicit, true);
12431245
if (Info.IsTestCandidate)
12441246
Elem.setBool(KeyIsTestCandidate, true);
12451247

utils/gyb_sourcekit_support/UIDs.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ def __init__(self, internal_name, external_name):
3939
KEY('Column', 'key.column'),
4040
KEY('ReceiverUSR', 'key.receiver_usr'),
4141
KEY('IsDynamic', 'key.is_dynamic'),
42+
KEY('IsImplicit', 'key.is_implicit'),
4243
KEY('FilePath', 'key.filepath'),
4344
KEY('ModuleInterfaceName', 'key.module_interface_name'),
4445
KEY('Hash', 'key.hash'),

0 commit comments

Comments
 (0)