Skip to content

Commit c2d0b4d

Browse files
committed
Add removeConsumer to DiagnosticEngine
1 parent 4651e14 commit c2d0b4d

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

include/swift/AST/DiagnosticEngine.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -596,6 +596,12 @@ namespace swift {
596596
Consumers.push_back(&Consumer);
597597
}
598598

599+
/// Remove a specific DiagnosticConsumer.
600+
void removeConsumer(DiagnosticConsumer &Consumer) {
601+
Consumers.erase(
602+
std::remove(Consumers.begin(), Consumers.end(), &Consumer));
603+
}
604+
599605
/// Remove and return all \c DiagnosticConsumers.
600606
std::vector<DiagnosticConsumer *> takeConsumers() {
601607
auto Result = std::vector<DiagnosticConsumer*>(Consumers.begin(),

tools/SourceKit/lib/SwiftLang/SwiftASTManager.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -449,11 +449,7 @@ bool SwiftASTManager::initCompilerInvocation(CompilerInvocation &Invocation,
449449
});
450450

451451
// Remove the StreamDiagConsumer as it's no longer needed.
452-
std::vector<DiagnosticConsumer *> OldC = Diags.takeConsumers();
453-
OldC.erase(std::remove(OldC.begin(), OldC.end(), &DiagConsumer));
454-
for (DiagnosticConsumer *Consumer : OldC) {
455-
Diags.addConsumer(*Consumer);
456-
}
452+
Diags.removeConsumer(DiagConsumer);
457453

458454
if (HadError) {
459455
Error = ErrOS.str();

0 commit comments

Comments
 (0)