Skip to content

Commit b735673

Browse files
authored
Merge pull request #18848 from ahoppen/remove-reuse-regions
[SourceKit] Remove option to regions reused as part of incremental parsing
2 parents 14c821d + 750e7e8 commit b735673

File tree

6 files changed

+13
-78
lines changed

6 files changed

+13
-78
lines changed

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -273,10 +273,6 @@ class EditorConsumer {
273273
}
274274
virtual SyntaxTreeTransferMode syntaxTreeTransferMode() = 0;
275275

276-
virtual bool syntaxReuseInfoEnabled() = 0;
277-
virtual void
278-
handleSyntaxReuseRegions(std::vector<SourceFileRange> ReuseRegions) = 0;
279-
280276
virtual void finished() {}
281277
};
282278

tools/SourceKit/lib/SwiftLang/SwiftEditor.cpp

Lines changed: 13 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2265,44 +2265,23 @@ void SwiftLangSupport::editorReplaceText(StringRef Name,
22652265
EditorDoc->readSyntaxInfo(Consumer);
22662266

22672267
// Log reuse information
2268-
if (SyntaxCache.hasValue()) {
2269-
// Avoid computing the reused ranges if the consumer doesn't care about
2270-
// them
2271-
if (Consumer.syntaxReuseInfoEnabled()) {
2272-
auto &SyntaxTree = EditorDoc->getSyntaxTree();
2273-
auto ReuseRegions = SyntaxCache->getReusedRegions(*SyntaxTree);
2274-
2275-
// Abstract away from SyntaxReuseRegions to std::pair<unsigned, unsigned>
2276-
// so that SourceKit doesn't have to import swiftParse
2277-
std::vector<SourceFileRange> ReuseRegionOffsets;
2278-
ReuseRegionOffsets.reserve(ReuseRegions.size());
2279-
for (auto ReuseRegion : ReuseRegions) {
2280-
auto Start = ReuseRegion.Start.getOffset();
2281-
auto End = ReuseRegion.End.getOffset();
2282-
ReuseRegionOffsets.push_back({Start, End});
2283-
}
2284-
Consumer.handleSyntaxReuseRegions(ReuseRegionOffsets);
2285-
}
2286-
if (LogReuseRegions) {
2287-
auto &SyntaxTree = EditorDoc->getSyntaxTree();
2288-
auto ReuseRegions = SyntaxCache->getReusedRegions(*SyntaxTree);
2289-
LOG_SECTION("SyntaxCache", InfoHighPrio) {
2290-
Log->getOS() << "Reused ";
2291-
2292-
bool FirstIteration = true;
2293-
for (auto ReuseRegion : ReuseRegions) {
2294-
if (!FirstIteration) {
2295-
Log->getOS() << ", ";
2296-
} else {
2297-
FirstIteration = false;
2298-
}
2268+
if (SyntaxCache.hasValue() && LogReuseRegions) {
2269+
auto &SyntaxTree = EditorDoc->getSyntaxTree();
2270+
auto ReuseRegions = SyntaxCache->getReusedRegions(*SyntaxTree);
2271+
LOG_SECTION("SyntaxCache", InfoHighPrio) {
2272+
Log->getOS() << "Reused ";
22992273

2300-
Log->getOS() << ReuseRegion.Start << " - " << ReuseRegion.End;
2274+
bool FirstIteration = true;
2275+
for (auto ReuseRegion : ReuseRegions) {
2276+
if (!FirstIteration) {
2277+
Log->getOS() << ", ";
2278+
} else {
2279+
FirstIteration = false;
23012280
}
2281+
2282+
Log->getOS() << ReuseRegion.Start << " - " << ReuseRegion.End;
23022283
}
23032284
}
2304-
} else {
2305-
Consumer.handleSyntaxReuseRegions({});
23062285
}
23072286

23082287
if (Consumer.syntaxTreeEnabled()) {

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

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ struct SKEditorConsumerOptions {
8181
SyntaxTreeSerializationFormat SyntaxSerializationFormat =
8282
SyntaxTreeSerializationFormat::JSON;
8383
bool SyntacticOnly = false;
84-
bool EnableSyntaxReuseInfo = false;
8584
};
8685

8786
} // anonymous namespace
@@ -471,9 +470,6 @@ void handleRequestImpl(sourcekitd_object_t ReqObj, ResponseReceiver Rec) {
471470
auto SerializationFormatUID = Req.getUID(KeySyntaxTreeSerializationFormat);
472471
int64_t SyntacticOnly = false;
473472
Req.getInt64(KeySyntacticOnly, SyntacticOnly, /*isOptional=*/true);
474-
int64_t EnableSyntaxReuseInfo = false;
475-
Req.getInt64(KeyEnableSyntaxReuseRegions, EnableSyntaxReuseInfo,
476-
/*isOptional=*/true);
477473

478474
SKEditorConsumerOptions Opts;
479475
Opts.EnableSyntaxMap = EnableSyntaxMap;
@@ -486,7 +482,6 @@ void handleRequestImpl(sourcekitd_object_t ReqObj, ResponseReceiver Rec) {
486482
return Rec(createErrorRequestFailed("Invalid serialization format"));
487483
Opts.SyntaxSerializationFormat = SyntaxSerializationFormat.getValue();
488484
Opts.SyntacticOnly = SyntacticOnly;
489-
Opts.EnableSyntaxReuseInfo = EnableSyntaxReuseInfo;
490485
return Rec(editorOpen(*Name, InputBuf.get(), Opts, Args));
491486
}
492487
if (ReqUID == RequestEditorClose) {
@@ -519,9 +514,6 @@ void handleRequestImpl(sourcekitd_object_t ReqObj, ResponseReceiver Rec) {
519514
Req.getInt64(KeyEnableDiagnostics, EnableDiagnostics, /*isOptional=*/true);
520515
int64_t SyntacticOnly = false;
521516
Req.getInt64(KeySyntacticOnly, SyntacticOnly, /*isOptional=*/true);
522-
int64_t EnableSyntaxReuseInfo = false;
523-
Req.getInt64(KeyEnableSyntaxReuseRegions, EnableSyntaxReuseInfo,
524-
/*isOptional=*/true);
525517
auto TransferModeUID = Req.getUID(KeySyntaxTreeTransferMode);
526518
auto SerializationFormatUID = Req.getUID(KeySyntaxTreeSerializationFormat);
527519

@@ -535,9 +527,7 @@ void handleRequestImpl(sourcekitd_object_t ReqObj, ResponseReceiver Rec) {
535527
if (!SyntaxSerializationFormat)
536528
return Rec(createErrorRequestFailed("Invalid serialization format"));
537529
Opts.SyntaxSerializationFormat = SyntaxSerializationFormat.getValue();
538-
Opts.EnableSyntaxReuseInfo = EnableSyntaxReuseInfo;
539530
Opts.SyntacticOnly = SyntacticOnly;
540-
Opts.EnableSyntaxReuseInfo = EnableSyntaxReuseInfo;
541531

542532
return Rec(editorReplaceText(*Name, InputBuf.get(), Offset, Length, Opts));
543533
}
@@ -2120,10 +2110,6 @@ class SKEditorConsumer : public EditorConsumer {
21202110
void handleSyntaxTree(const swift::syntax::SourceFileSyntax &SyntaxTree,
21212111
std::unordered_set<unsigned> &ReusedNodeIds) override;
21222112

2123-
bool syntaxReuseInfoEnabled() override { return Opts.EnableSyntaxReuseInfo; }
2124-
void
2125-
handleSyntaxReuseRegions(std::vector<SourceFileRange> ReuseRegions) override;
2126-
21272113
SyntaxTreeTransferMode syntaxTreeTransferMode() override {
21282114
return Opts.SyntaxTransferMode;
21292115
}
@@ -2537,19 +2523,6 @@ void SKEditorConsumer::handleSyntaxTree(
25372523
}
25382524
}
25392525

2540-
void SKEditorConsumer::handleSyntaxReuseRegions(
2541-
std::vector<SourceFileRange> ReuseRegions) {
2542-
if (Opts.EnableSyntaxReuseInfo) {
2543-
auto Array = Dict.setArray(KeySyntaxReuseRegions);
2544-
2545-
for (auto Region : ReuseRegions) {
2546-
auto SubDict = Array.appendDictionary();
2547-
SubDict.set(KeyOffset, Region.Start);
2548-
SubDict.set(KeyLength, Region.End - Region.Start);
2549-
}
2550-
}
2551-
}
2552-
25532526
static sourcekitd_response_t
25542527
editorFindUSR(StringRef DocumentName, StringRef USR) {
25552528
ResponseBuilder RespBuilder;

unittests/SourceKit/SwiftLang/CursorInfoTest.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,6 @@ class NullEditorConsumer : public EditorConsumer {
8585
return SyntaxTreeTransferMode::Off;
8686
}
8787

88-
bool syntaxReuseInfoEnabled() override { return false; }
89-
90-
void
91-
handleSyntaxReuseRegions(std::vector<SourceFileRange> ReuseRegions) override {
92-
}
93-
9488
public:
9589
bool needsSema = false;
9690
};

unittests/SourceKit/SwiftLang/EditingTest.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,6 @@ class DiagConsumer : public EditorConsumer {
9393
return SyntaxTreeTransferMode::Off;
9494
}
9595

96-
bool syntaxReuseInfoEnabled() override { return false; }
97-
98-
void
99-
handleSyntaxReuseRegions(std::vector<SourceFileRange> ReuseRegions) override {
100-
}
10196
};
10297

10398
struct DocUpdateMutexState {

utils/gyb_sourcekit_support/UIDs.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,7 @@ def __init__(self, internal_name, external_name):
4747
KEY('Length', 'key.length'),
4848
KEY('SourceFile', 'key.sourcefile'),
4949
KEY('SerializedSyntaxTree', 'key.serialized_syntax_tree'),
50-
KEY('SyntaxReuseRegions', 'key.syntaxreuseregions'),
5150
KEY('SourceText', 'key.sourcetext'),
52-
KEY('EnableSyntaxReuseRegions', 'key.enablesyntaxreuseregions'),
5351
KEY('EnableSyntaxMap', 'key.enablesyntaxmap'),
5452
KEY('SyntaxTreeTransferMode', 'key.syntaxtreetransfermode'),
5553
KEY('SyntaxTreeSerializationFormat',

0 commit comments

Comments
 (0)