Skip to content

Commit e3264d9

Browse files
committed
[SourceKit] Remove Implementation abstraction layer in FindRenameRangesAnnotatingConsumer
1 parent eee45f7 commit e3264d9

File tree

2 files changed

+34
-48
lines changed

2 files changed

+34
-48
lines changed

include/swift/Refactoring/Refactoring.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,13 +100,11 @@ class FindRenameRangesConsumer {
100100
};
101101

102102
class FindRenameRangesAnnotatingConsumer : public FindRenameRangesConsumer {
103-
struct Implementation;
104-
Implementation &Impl;
103+
std::unique_ptr<SourceEditConsumer> pRewriter;
105104

106105
public:
107106
FindRenameRangesAnnotatingConsumer(SourceManager &SM, unsigned BufferId,
108107
llvm::raw_ostream &OS);
109-
~FindRenameRangesAnnotatingConsumer();
110108
void accept(SourceManager &SM, RegionType RegionType,
111109
ArrayRef<RenameRangeDetail> Ranges) override;
112110
};

lib/Refactoring/FindRenameRangesAnnotatingConsumer.cpp

Lines changed: 33 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -14,62 +14,50 @@
1414

1515
using namespace swift::refactoring;
1616

17-
struct swift::ide::FindRenameRangesAnnotatingConsumer::Implementation {
18-
std::unique_ptr<SourceEditConsumer> pRewriter;
19-
Implementation(SourceManager &SM, unsigned BufferId, raw_ostream &OS)
20-
: pRewriter(new SourceEditOutputConsumer(SM, BufferId, OS)) {}
21-
static StringRef tag(RefactoringRangeKind Kind) {
22-
switch (Kind) {
23-
case RefactoringRangeKind::BaseName:
24-
return "base";
25-
case RefactoringRangeKind::KeywordBaseName:
26-
return "keywordBase";
27-
case RefactoringRangeKind::ParameterName:
28-
return "param";
29-
case RefactoringRangeKind::NoncollapsibleParameterName:
30-
return "noncollapsibleparam";
31-
case RefactoringRangeKind::DeclArgumentLabel:
32-
return "arglabel";
33-
case RefactoringRangeKind::CallArgumentLabel:
34-
return "callarg";
35-
case RefactoringRangeKind::CallArgumentColon:
36-
return "callcolon";
37-
case RefactoringRangeKind::CallArgumentCombined:
38-
return "callcombo";
39-
case RefactoringRangeKind::SelectorArgumentLabel:
40-
return "sel";
41-
}
42-
llvm_unreachable("unhandled kind");
17+
static StringRef tag(RefactoringRangeKind Kind) {
18+
switch (Kind) {
19+
case RefactoringRangeKind::BaseName:
20+
return "base";
21+
case RefactoringRangeKind::KeywordBaseName:
22+
return "keywordBase";
23+
case RefactoringRangeKind::ParameterName:
24+
return "param";
25+
case RefactoringRangeKind::NoncollapsibleParameterName:
26+
return "noncollapsibleparam";
27+
case RefactoringRangeKind::DeclArgumentLabel:
28+
return "arglabel";
29+
case RefactoringRangeKind::CallArgumentLabel:
30+
return "callarg";
31+
case RefactoringRangeKind::CallArgumentColon:
32+
return "callcolon";
33+
case RefactoringRangeKind::CallArgumentCombined:
34+
return "callcombo";
35+
case RefactoringRangeKind::SelectorArgumentLabel:
36+
return "sel";
4337
}
44-
void accept(SourceManager &SM, const RenameRangeDetail &Range) {
45-
std::string NewText;
46-
llvm::raw_string_ostream OS(NewText);
47-
StringRef Tag = tag(Range.RangeKind);
48-
OS << "<" << Tag;
49-
if (Range.Index.has_value())
50-
OS << " index=" << *Range.Index;
51-
OS << ">" << Range.Range.str() << "</" << Tag << ">";
52-
pRewriter->accept(SM, {/*Path=*/{}, Range.Range, /*BufferName=*/{},
53-
OS.str(), /*RegionsWorthNote=*/{}});
54-
}
55-
};
38+
llvm_unreachable("unhandled kind");
39+
}
5640

5741
swift::ide::FindRenameRangesAnnotatingConsumer::
5842
FindRenameRangesAnnotatingConsumer(SourceManager &SM, unsigned BufferId,
5943
raw_ostream &OS)
60-
: Impl(*new Implementation(SM, BufferId, OS)) {}
61-
62-
swift::ide::FindRenameRangesAnnotatingConsumer::
63-
~FindRenameRangesAnnotatingConsumer() {
64-
delete &Impl;
65-
}
44+
: pRewriter(new SourceEditOutputConsumer(SM, BufferId, OS)) {}
6645

6746
void swift::ide::FindRenameRangesAnnotatingConsumer::accept(
6847
SourceManager &SM, RegionType RegionType,
6948
ArrayRef<RenameRangeDetail> Ranges) {
7049
if (RegionType == RegionType::Mismatch || RegionType == RegionType::Unmatched)
7150
return;
7251
for (const auto &Range : Ranges) {
73-
Impl.accept(SM, Range);
52+
std::string NewText;
53+
llvm::raw_string_ostream OS(NewText);
54+
StringRef Tag = tag(Range.RangeKind);
55+
OS << "<" << Tag;
56+
if (Range.Index.has_value())
57+
OS << " index=" << *Range.Index;
58+
OS << ">" << Range.Range.str() << "</" << Tag << ">";
59+
Replacement Repl{/*Path=*/{}, Range.Range, /*BufferName=*/{}, OS.str(),
60+
/*RegionsWorthNote=*/{}};
61+
pRewriter->accept(SM, Repl);
7462
}
7563
}

0 commit comments

Comments
 (0)