@@ -2504,11 +2504,6 @@ static std::optional<Identifier> parseSingleAttrOptionImpl(
2504
2504
return std::nullopt;
2505
2505
}
2506
2506
2507
- if (P.Tok .is (tok::code_complete)) {
2508
- Status.setHasCodeCompletion ();
2509
- codeCompletionCallback ();
2510
- }
2511
-
2512
2507
if (!P.consumeIf (tok::r_paren)) {
2513
2508
Status.setIsParseError ();
2514
2509
P.diagnose (Loc, diag::attr_expected_rparen, AttrName, isDeclModifier);
@@ -2926,20 +2921,7 @@ ParserStatus Parser::parseNewDeclAttribute(DeclAttributes &Attributes,
2926
2921
consumeToken ();
2927
2922
} else {
2928
2923
diagnose (Loc, diag::attr_access_expected_set, AttrName);
2929
-
2930
- const Token &Tok2 = peekToken ();
2931
-
2932
- if (Tok2.is (tok::code_complete) && Tok.is (tok::identifier) &&
2933
- !Tok.isContextualDeclKeyword ()) {
2934
- consumeToken (tok::identifier);
2935
- if (CodeCompletionCallbacks) {
2936
- CodeCompletionCallbacks->completeDeclAttrParam (
2937
- ParameterizedDeclAttributeKind::AccessControl, 0 , false );
2938
- }
2939
- consumeToken (tok::code_complete);
2940
- return makeParserCodeCompletionStatus ();
2941
- }
2942
-
2924
+
2943
2925
// Minimal recovery: if there's a single token and then an r_paren,
2944
2926
// consume them both. If there's just an r_paren, consume that.
2945
2927
if (!consumeIf (tok::r_paren)) {
0 commit comments