Skip to content

Commit 0b456ba

Browse files
authored
Merge pull request #34283 from slavapestov/small-parser-cleanup
Parse: Remove AlreadyHandledDecls set
2 parents 3221734 + ac116cf commit 0b456ba

File tree

2 files changed

+6
-18
lines changed

2 files changed

+6
-18
lines changed

include/swift/Parse/Parser.h

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -943,17 +943,6 @@ class Parser {
943943
void consumeDecl(ParserPosition BeginParserPosition, ParseDeclOptions Flags,
944944
bool IsTopLevel);
945945

946-
/// FIXME: Remove this, it's vestigial.
947-
llvm::SmallPtrSet<Decl *, 2> AlreadyHandledDecls;
948-
949-
void markWasHandled(Decl *D) {
950-
AlreadyHandledDecls.insert(D);
951-
}
952-
953-
bool declWasHandledAlready(Decl *D) {
954-
return AlreadyHandledDecls.erase(D);
955-
}
956-
957946
ParserResult<Decl> parseDecl(ParseDeclOptions Flags,
958947
bool IsAtStartOfLineOrPreviousHadSemi,
959948
llvm::function_ref<void(Decl*)> Handler);

lib/Parse/ParseDecl.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3849,6 +3849,8 @@ Parser::parseDecl(ParseDeclOptions Flags,
38493849
auto OrigTok = Tok;
38503850
bool MayNeedOverrideCompletion = false;
38513851

3852+
bool HandlerAlreadyCalled = false;
3853+
38523854
auto parseLetOrVar = [&](bool HasLetOrVarKeyword) {
38533855
// Collect all modifiers into a modifier list.
38543856
DeclParsingContext.setCreateSyntax(SyntaxKind::VariableDecl);
@@ -3861,8 +3863,7 @@ Parser::parseDecl(ParseDeclOptions Flags,
38613863
&& isCodeCompletionFirstPass())
38623864
return;
38633865
std::for_each(Entries.begin(), Entries.end(), Handler);
3864-
if (auto *D = DeclResult.getPtrOrNull())
3865-
markWasHandled(D);
3866+
HandlerAlreadyCalled = true;
38663867
};
38673868

38683869
auto parseFunc = [&](bool HasFuncKeyword) {
@@ -3909,8 +3910,7 @@ Parser::parseDecl(ParseDeclOptions Flags,
39093910
isCodeCompletionFirstPass())
39103911
break;
39113912
std::for_each(Entries.begin(), Entries.end(), Handler);
3912-
if (auto *D = DeclResult.getPtrOrNull())
3913-
markWasHandled(D);
3913+
HandlerAlreadyCalled = true;
39143914
break;
39153915
}
39163916
case tok::kw_class:
@@ -3955,8 +3955,7 @@ Parser::parseDecl(ParseDeclOptions Flags,
39553955
break;
39563956
std::for_each(Entries.begin(), Entries.end(), Handler);
39573957
MayNeedOverrideCompletion = true;
3958-
if (auto *D = DeclResult.getPtrOrNull())
3959-
markWasHandled(D);
3958+
HandlerAlreadyCalled = true;
39603959
break;
39613960
}
39623961

@@ -4136,7 +4135,7 @@ Parser::parseDecl(ParseDeclOptions Flags,
41364135

41374136
if (DeclResult.isNonNull()) {
41384137
Decl *D = DeclResult.get();
4139-
if (!declWasHandledAlready(D))
4138+
if (!HandlerAlreadyCalled)
41404139
Handler(D);
41414140
setOriginalDeclarationForDifferentiableAttributes(D->getAttrs(), D);
41424141
}

0 commit comments

Comments
 (0)