@@ -3523,14 +3523,6 @@ ParserStatus Parser::parseNewDeclAttribute(DeclAttributes &Attributes,
3523
3523
break ;
3524
3524
}
3525
3525
3526
- case DAK_Initializes: {
3527
- llvm_unreachable (" InitializesAttr not yet implemented" );
3528
- }
3529
-
3530
- case DAK_Accesses: {
3531
- llvm_unreachable (" AccessesAttr not yet implemented" );
3532
- }
3533
-
3534
3526
case DAK_StorageRestrictions: {
3535
3527
ParserResult<StorageRestrictionsAttr> Attr =
3536
3528
parseStorageRestrictionsAttribute (AtLoc, Loc);
@@ -7446,71 +7438,6 @@ ParserStatus Parser::parseGetEffectSpecifier(ParsedAccessors &accessors,
7446
7438
return Status;
7447
7439
}
7448
7440
7449
- template <typename EffectAttr>
7450
- static ParserStatus parseInitAccessorEffect (Parser &P,
7451
- DeclAttributes &attributes,
7452
- StringRef attrName) {
7453
- ParserStatus status;
7454
-
7455
- if (P.Tok .isContextualKeyword (attrName)) {
7456
- auto effectLoc = P.consumeToken ();
7457
- if (!P.Tok .is (tok::l_paren)) {
7458
- P.diagnose (P.Tok .getLoc (), diag::attr_expected_lparen,
7459
- attrName, true );
7460
- status.setIsParseError ();
7461
- return status;
7462
- }
7463
-
7464
- // Consume '('
7465
- P.consumeToken ();
7466
-
7467
- bool hasNextProperty = false ;
7468
- // Consume the identifier list
7469
- SmallVector<Identifier, 4 > properties;
7470
- do {
7471
- Identifier propertyName;
7472
- SourceLoc propertyNameLoc;
7473
- if (P.parseIdentifier (propertyName, propertyNameLoc,
7474
- diag::init_accessor_expected_name,
7475
- /* diagnoseDollarPrefix=*/ true )) {
7476
- status.setIsParseError ();
7477
- return status;
7478
- }
7479
-
7480
- properties.push_back (propertyName);
7481
-
7482
- // Parse the comma, if the list continues.
7483
- hasNextProperty = P.consumeIf (tok::comma);
7484
- } while (hasNextProperty);
7485
-
7486
- if (!P.Tok .is (tok::r_paren)) {
7487
- P.diagnose (P.Tok .getLoc (), diag::attr_expected_rparen,
7488
- attrName, true );
7489
- status.setIsParseError ();
7490
- return status;
7491
- }
7492
-
7493
- // Consume ')'
7494
- SourceLoc rParenLoc = P.consumeToken ();
7495
-
7496
- auto *attr = EffectAttr::create (P.Context , SourceLoc (),
7497
- SourceRange (effectLoc, rParenLoc),
7498
- properties);
7499
- attributes.add (attr);
7500
- }
7501
-
7502
- return status;
7503
- }
7504
-
7505
- ParserStatus Parser::parseInitAccessorEffects (ParsedAccessors &accessors,
7506
- AccessorKind currentKind,
7507
- DeclAttributes &attrs) {
7508
- ParserStatus status;
7509
- status |= parseInitAccessorEffect<InitializesAttr>(*this , attrs, " initializes" );
7510
- status |= parseInitAccessorEffect<AccessesAttr>(*this , attrs, " accesses" );
7511
- return status;
7512
- }
7513
-
7514
7441
bool Parser::parseAccessorAfterIntroducer (
7515
7442
SourceLoc Loc, AccessorKind Kind, ParsedAccessors &accessors,
7516
7443
bool &hasEffectfulGet, ParameterList *Indices, bool &parsingLimitedSyntax,
@@ -7525,7 +7452,6 @@ bool Parser::parseAccessorAfterIntroducer(
7525
7452
SourceLoc throwsLoc;
7526
7453
Status |= parseGetEffectSpecifier (accessors, asyncLoc, throwsLoc,
7527
7454
hasEffectfulGet, Kind, Loc);
7528
- Status |= parseInitAccessorEffects (accessors, Kind, Attributes);
7529
7455
7530
7456
// Set up a function declaration.
7531
7457
auto accessor =
0 commit comments