Skip to content

Commit e880124

Browse files
[Sema] Remove type check verification for initializes and accesses attr
1 parent 4c24384 commit e880124

File tree

2 files changed

+0
-42
lines changed

2 files changed

+0
-42
lines changed

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)

0 commit comments

Comments
 (0)