Skip to content

Commit c48836c

Browse files
Merge pull request #68073 from apple/remove-diags
Removing code for 'initializes' and 'accesses' attributes old syntax
2 parents edd6a3b + 499547a commit c48836c

File tree

12 files changed

+1
-327
lines changed

12 files changed

+1
-327
lines changed

include/swift/AST/Attr.def

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -345,12 +345,6 @@ SIMPLE_DECL_ATTR(_marker, Marker,
345345
SIMPLE_DECL_ATTR(reasync, AtReasync,
346346
OnProtocol | ConcurrencyOnly | ABIBreakingToAdd | ABIBreakingToRemove | APIBreakingToAdd | APIBreakingToRemove,
347347
110)
348-
DECL_ATTR(initializes, Initializes,
349-
OnAccessor | ABIStableToAdd | ABIStableToRemove | APIBreakingToAdd | APIBreakingToRemove,
350-
111)
351-
DECL_ATTR(accesses, Accesses,
352-
OnAccessor | ABIStableToAdd | ABIStableToRemove | APIBreakingToAdd | APIBreakingToRemove,
353-
113)
354348
SIMPLE_DECL_ATTR(_unsafeInheritExecutor, UnsafeInheritExecutor,
355349
OnFunc | UserInaccessible | ABIStableToAdd | ABIStableToRemove | APIStableToAdd | APIBreakingToRemove,
356350
114)

include/swift/AST/Attr.h

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1555,68 +1555,6 @@ class SpecializeAttr final
15551555
}
15561556
};
15571557

1558-
class InitializesAttr final
1559-
: public DeclAttribute,
1560-
private llvm::TrailingObjects<InitializesAttr, Identifier> {
1561-
friend TrailingObjects;
1562-
1563-
size_t numProperties;
1564-
1565-
InitializesAttr(SourceLoc atLoc, SourceRange range,
1566-
ArrayRef<Identifier> properties);
1567-
1568-
public:
1569-
static InitializesAttr *create(ASTContext &ctx,
1570-
SourceLoc atLoc, SourceRange range,
1571-
ArrayRef<Identifier> properties);
1572-
1573-
size_t numTrailingObjects(OverloadToken<Identifier>) const {
1574-
return numProperties;
1575-
}
1576-
1577-
unsigned getNumProperties() const { return numProperties; }
1578-
1579-
ArrayRef<Identifier> getProperties() const {
1580-
return {getTrailingObjects<Identifier>(), numProperties};
1581-
}
1582-
1583-
ArrayRef<VarDecl *> getPropertyDecls(AccessorDecl *attachedTo) const;
1584-
1585-
static bool classof(const DeclAttribute *DA) {
1586-
return DA->getKind() == DAK_Initializes;
1587-
}
1588-
};
1589-
1590-
class AccessesAttr final
1591-
: public DeclAttribute,
1592-
private llvm::TrailingObjects<AccessesAttr, Identifier> {
1593-
friend TrailingObjects;
1594-
1595-
size_t numProperties;
1596-
1597-
AccessesAttr(SourceLoc atLoc, SourceRange range,
1598-
ArrayRef<Identifier> properties);
1599-
1600-
public:
1601-
static AccessesAttr *create(ASTContext &ctx,
1602-
SourceLoc atLoc, SourceRange range,
1603-
ArrayRef<Identifier> properties);
1604-
1605-
size_t numTrailingObjects(OverloadToken<Identifier>) const {
1606-
return numProperties;
1607-
}
1608-
1609-
ArrayRef<Identifier> getProperties() const {
1610-
return {getTrailingObjects<Identifier>(), numProperties};
1611-
}
1612-
1613-
ArrayRef<VarDecl *> getPropertyDecls(AccessorDecl *attachedTo) const;
1614-
1615-
static bool classof(const DeclAttribute *DA) {
1616-
return DA->getKind() == DAK_Accesses;
1617-
}
1618-
};
1619-
16201558
class StorageRestrictionsAttr final
16211559
: public DeclAttribute,
16221560
private llvm::TrailingObjects<StorageRestrictionsAttr, Identifier> {

include/swift/AST/DiagnosticsSema.def

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7397,12 +7397,6 @@ ERROR(init_accessor_can_refer_only_to_properties,none,
73977397
" to stored properties",
73987398
(DescriptiveDeclKind, DeclNameRef))
73997399

7400-
ERROR(init_accessor_initializes_attribute_on_other_declaration,none,
7401-
"initializes(...) attribute could only be used with init accessors",
7402-
())
7403-
ERROR(init_accessor_accesses_attribute_on_other_declaration,none,
7404-
"accesses(...) attribute could only be used with init accessors",
7405-
())
74067400
ERROR(storage_restrictions_attribute_not_on_init_accessor,none,
74077401
"@storageRestrictions attribute could only be used with init accessors",
74087402
())

include/swift/Parse/Parser.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1274,10 +1274,6 @@ class Parser {
12741274
AccessorKind currentKind,
12751275
SourceLoc const& currentLoc);
12761276

1277-
ParserStatus parseInitAccessorEffects(ParsedAccessors &accessors,
1278-
AccessorKind currentKind,
1279-
DeclAttributes &Attributes);
1280-
12811277
/// Parse accessors provided as a separate list, for use in macro
12821278
/// expansions.
12831279
void parseTopLevelAccessors(

lib/AST/Attr.cpp

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1661,10 +1661,6 @@ StringRef DeclAttribute::getAttrName() const {
16611661
return "<<synthesized protocol>>";
16621662
case DAK_Specialize:
16631663
return "_specialize";
1664-
case DAK_Initializes:
1665-
return "initializes";
1666-
case DAK_Accesses:
1667-
return "accesses";
16681664
case DAK_StorageRestrictions:
16691665
return "storageRestrictions";
16701666
case DAK_Implements:
@@ -2450,38 +2446,6 @@ TransposeAttr *TransposeAttr::create(ASTContext &context, bool implicit,
24502446
std::move(originalName), parameterIndices);
24512447
}
24522448

2453-
InitializesAttr::InitializesAttr(SourceLoc atLoc, SourceRange range,
2454-
ArrayRef<Identifier> properties)
2455-
: DeclAttribute(DAK_Initializes, atLoc, range, /*implicit*/false),
2456-
numProperties(properties.size()) {
2457-
std::uninitialized_copy(properties.begin(), properties.end(),
2458-
getTrailingObjects<Identifier>());
2459-
}
2460-
2461-
InitializesAttr *
2462-
InitializesAttr::create(ASTContext &ctx, SourceLoc atLoc, SourceRange range,
2463-
ArrayRef<Identifier> properties) {
2464-
unsigned size = totalSizeToAlloc<Identifier>(properties.size());
2465-
void *mem = ctx.Allocate(size, alignof(InitializesAttr));
2466-
return new (mem) InitializesAttr(atLoc, range, properties);
2467-
}
2468-
2469-
AccessesAttr::AccessesAttr(SourceLoc atLoc, SourceRange range,
2470-
ArrayRef<Identifier> properties)
2471-
: DeclAttribute(DAK_Accesses, atLoc, range, /*implicit*/false),
2472-
numProperties(properties.size()) {
2473-
std::uninitialized_copy(properties.begin(), properties.end(),
2474-
getTrailingObjects<Identifier>());
2475-
}
2476-
2477-
AccessesAttr *
2478-
AccessesAttr::create(ASTContext &ctx, SourceLoc atLoc, SourceRange range,
2479-
ArrayRef<Identifier> properties) {
2480-
unsigned size = totalSizeToAlloc<Identifier>(properties.size());
2481-
void *mem = ctx.Allocate(size, alignof(AccessesAttr));
2482-
return new (mem) AccessesAttr(atLoc, range, properties);
2483-
}
2484-
24852449
StorageRestrictionsAttr::StorageRestrictionsAttr(
24862450
SourceLoc AtLoc, SourceRange Range, ArrayRef<Identifier> initializes,
24872451
ArrayRef<Identifier> accesses, bool Implicit)
@@ -2663,26 +2627,6 @@ DeclAttributes::getEffectiveSendableAttr() const {
26632627
return assumedAttr;
26642628
}
26652629

2666-
ArrayRef<VarDecl *>
2667-
InitializesAttr::getPropertyDecls(AccessorDecl *attachedTo) const {
2668-
auto &ctx = attachedTo->getASTContext();
2669-
return evaluateOrDefault(
2670-
ctx.evaluator,
2671-
InitAccessorReferencedVariablesRequest{
2672-
const_cast<InitializesAttr *>(this), attachedTo, getProperties()},
2673-
{});
2674-
}
2675-
2676-
ArrayRef<VarDecl *>
2677-
AccessesAttr::getPropertyDecls(AccessorDecl *attachedTo) const {
2678-
auto &ctx = attachedTo->getASTContext();
2679-
return evaluateOrDefault(
2680-
ctx.evaluator,
2681-
InitAccessorReferencedVariablesRequest{const_cast<AccessesAttr *>(this),
2682-
attachedTo, getProperties()},
2683-
{});
2684-
}
2685-
26862630
ArrayRef<VarDecl *> StorageRestrictionsAttr::getInitializesProperties(
26872631
AccessorDecl *attachedTo) const {
26882632
auto &ctx = attachedTo->getASTContext();

lib/AST/Decl.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9567,10 +9567,6 @@ ArrayRef<VarDecl *> AccessorDecl::getInitializedProperties() const {
95679567
if (auto *SR = getAttrs().getAttribute<StorageRestrictionsAttr>())
95689568
return SR->getInitializesProperties(const_cast<AccessorDecl *>(this));
95699569

9570-
// Fallback to old effect style declaration.
9571-
if (auto *initAttr = getAttrs().getAttribute<InitializesAttr>())
9572-
return initAttr->getPropertyDecls(const_cast<AccessorDecl *>(this));
9573-
95749570
return {};
95759571
}
95769572

@@ -9580,10 +9576,6 @@ ArrayRef<VarDecl *> AccessorDecl::getAccessedProperties() const {
95809576
if (auto *SR = getAttrs().getAttribute<StorageRestrictionsAttr>())
95819577
return SR->getAccessesProperties(const_cast<AccessorDecl *>(this));
95829578

9583-
// Fallback to old effect style declaration.
9584-
if (auto *accessAttr = getAttrs().getAttribute<AccessesAttr>())
9585-
return accessAttr->getPropertyDecls(const_cast<AccessorDecl *>(this));
9586-
95879579
return {};
95889580
}
95899581

lib/Parse/ParseDecl.cpp

Lines changed: 0 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -3523,14 +3523,6 @@ ParserStatus Parser::parseNewDeclAttribute(DeclAttributes &Attributes,
35233523
break;
35243524
}
35253525

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-
35343526
case DAK_StorageRestrictions: {
35353527
ParserResult<StorageRestrictionsAttr> Attr =
35363528
parseStorageRestrictionsAttribute(AtLoc, Loc);
@@ -7446,71 +7438,6 @@ ParserStatus Parser::parseGetEffectSpecifier(ParsedAccessors &accessors,
74467438
return Status;
74477439
}
74487440

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-
75147441
bool Parser::parseAccessorAfterIntroducer(
75157442
SourceLoc Loc, AccessorKind Kind, ParsedAccessors &accessors,
75167443
bool &hasEffectfulGet, ParameterList *Indices, bool &parsingLimitedSyntax,
@@ -7525,7 +7452,6 @@ bool Parser::parseAccessorAfterIntroducer(
75257452
SourceLoc throwsLoc;
75267453
Status |= parseGetEffectSpecifier(accessors, asyncLoc, throwsLoc,
75277454
hasEffectfulGet, Kind, Loc);
7528-
Status |= parseInitAccessorEffects(accessors, Kind, Attributes);
75297455

75307456
// Set up a function declaration.
75317457
auto accessor =

lib/Sema/TypeCheckAttr.cpp

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -294,8 +294,6 @@ class AttributeChecker : public AttributeVisitor<AttributeChecker> {
294294
void visitDiscardableResultAttr(DiscardableResultAttr *attr);
295295
void visitDynamicReplacementAttr(DynamicReplacementAttr *attr);
296296
void visitTypeEraserAttr(TypeEraserAttr *attr);
297-
void visitInitializesAttr(InitializesAttr *attr);
298-
void visitAccessesAttr(AccessesAttr *attr);
299297
void visitStorageRestrictionsAttr(StorageRestrictionsAttr *attr);
300298
void visitImplementsAttr(ImplementsAttr *attr);
301299
void visitNoMetadataAttr(NoMetadataAttr *attr);
@@ -3573,44 +3571,6 @@ void AttributeChecker::visitTypeEraserAttr(TypeEraserAttr *attr) {
35733571
(void)attr->hasViableTypeEraserInit(cast<ProtocolDecl>(D));
35743572
}
35753573

3576-
void AttributeChecker::visitInitializesAttr(InitializesAttr *attr) {
3577-
auto *accessor = dyn_cast<AccessorDecl>(D);
3578-
if (!accessor || accessor->getAccessorKind() != AccessorKind::Init) {
3579-
diagnose(attr->getLocation(),
3580-
diag::init_accessor_initializes_attribute_on_other_declaration);
3581-
return;
3582-
}
3583-
3584-
(void)attr->getPropertyDecls(accessor);
3585-
}
3586-
3587-
void AttributeChecker::visitAccessesAttr(AccessesAttr *attr) {
3588-
auto *accessor = dyn_cast<AccessorDecl>(D);
3589-
if (!accessor || accessor->getAccessorKind() != AccessorKind::Init) {
3590-
diagnose(attr->getLocation(),
3591-
diag::init_accessor_accesses_attribute_on_other_declaration);
3592-
return;
3593-
}
3594-
3595-
// Check whether there are any intersections between initializes(...) and
3596-
// accesses(...) attributes.
3597-
3598-
llvm::Optional<ArrayRef<VarDecl *>> initializedProperties;
3599-
if (auto *initAttr = D->getAttrs().getAttribute<InitializesAttr>()) {
3600-
initializedProperties.emplace(initAttr->getPropertyDecls(accessor));
3601-
}
3602-
3603-
if (initializedProperties) {
3604-
for (auto *property : attr->getPropertyDecls(accessor)) {
3605-
if (llvm::is_contained(*initializedProperties, property)) {
3606-
diagnose(attr->getLocation(),
3607-
diag::init_accessor_property_both_init_and_accessed,
3608-
property->getName());
3609-
}
3610-
}
3611-
}
3612-
}
3613-
36143574
void AttributeChecker::visitStorageRestrictionsAttr(StorageRestrictionsAttr *attr) {
36153575
auto *accessor = dyn_cast<AccessorDecl>(D);
36163576
if (!accessor || accessor->getAccessorKind() != AccessorKind::Init) {

lib/Sema/TypeCheckDeclOverride.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1577,8 +1577,6 @@ namespace {
15771577
UNINTERESTING_ATTR(ObjCMembers)
15781578
UNINTERESTING_ATTR(ObjCRuntimeName)
15791579
UNINTERESTING_ATTR(RestatedObjCConformance)
1580-
UNINTERESTING_ATTR(Initializes)
1581-
UNINTERESTING_ATTR(Accesses)
15821580
UNINTERESTING_ATTR(StorageRestrictions)
15831581
UNINTERESTING_ATTR(Implements)
15841582
UNINTERESTING_ATTR(StaticInitializeObjCMetadata)

lib/Serialization/Deserialization.cpp

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5584,36 +5584,6 @@ llvm::Error DeclDeserializer::deserializeDeclCommon() {
55845584
break;
55855585
}
55865586

5587-
case decls_block::Initializes_DECL_ATTR: {
5588-
ArrayRef<uint64_t> rawPropertyIDs;
5589-
serialization::decls_block::InitializesDeclAttrLayout::
5590-
readRecord(scratch, rawPropertyIDs);
5591-
5592-
SmallVector<Identifier, 4> properties;
5593-
for (auto rawID : rawPropertyIDs) {
5594-
properties.push_back(MF.getIdentifier(rawID));
5595-
}
5596-
5597-
Attr = InitializesAttr::create(ctx, SourceLoc(), SourceRange(),
5598-
properties);
5599-
break;
5600-
}
5601-
5602-
case decls_block::Accesses_DECL_ATTR: {
5603-
ArrayRef<uint64_t> rawPropertyIDs;
5604-
serialization::decls_block::AccessesDeclAttrLayout::
5605-
readRecord(scratch, rawPropertyIDs);
5606-
5607-
SmallVector<Identifier, 4> properties;
5608-
for (auto rawID : rawPropertyIDs) {
5609-
properties.push_back(MF.getIdentifier(rawID));
5610-
}
5611-
5612-
Attr = AccessesAttr::create(ctx, SourceLoc(), SourceRange(),
5613-
properties);
5614-
break;
5615-
}
5616-
56175587
case decls_block::StorageRestrictions_DECL_ATTR: {
56185588
unsigned numInitializesProperties;
56195589
ArrayRef<uint64_t> rawPropertyIDs;

0 commit comments

Comments
 (0)