@@ -2264,8 +2264,11 @@ ParserStatus Parser::parseDecl(ParseDeclOptions Flags,
2264
2264
break ;
2265
2265
case tok::kw_case: {
2266
2266
llvm::SmallVector<Decl *, 4 > Entries;
2267
- Status = parseDeclEnumCase (Flags, Attributes, Entries);
2267
+ DeclResult = parseDeclEnumCase (Flags, Attributes, Entries);
2268
+ Status = DeclResult;
2268
2269
std::for_each (Entries.begin (), Entries.end (), InternalHandler);
2270
+ if (auto *D = DeclResult.getPtrOrNull ())
2271
+ markWasHandled (D);
2269
2272
break ;
2270
2273
}
2271
2274
case tok::kw_struct:
@@ -4980,9 +4983,10 @@ ParserResult<EnumDecl> Parser::parseDeclEnum(ParseDeclOptions Flags,
4980
4983
// / decl-enum-element:
4981
4984
// / 'case' attribute-list enum-case (',' enum-case)*
4982
4985
// / \endverbatim
4983
- ParserStatus Parser::parseDeclEnumCase (ParseDeclOptions Flags,
4984
- DeclAttributes &Attributes,
4985
- llvm::SmallVectorImpl<Decl *> &Decls) {
4986
+ ParserResult<EnumCaseDecl>
4987
+ Parser::parseDeclEnumCase (ParseDeclOptions Flags,
4988
+ DeclAttributes &Attributes,
4989
+ llvm::SmallVectorImpl<Decl *> &Decls) {
4986
4990
ParserStatus Status;
4987
4991
SourceLoc CaseLoc = consumeToken (tok::kw_case);
4988
4992
@@ -5139,7 +5143,7 @@ ParserStatus Parser::parseDeclEnumCase(ParseDeclOptions Flags,
5139
5143
5140
5144
// Insert the element decls.
5141
5145
std::copy (Elements.begin (), Elements.end (), std::back_inserter (Decls));
5142
- return Status;
5146
+ return makeParserResult ( Status, TheCase) ;
5143
5147
}
5144
5148
5145
5149
// / \brief Parse a 'struct' declaration, returning true (and doing no token
0 commit comments