Skip to content

Commit 34292da

Browse files
authored
Merge pull request swiftlang#32559 from slavapestov/remove-get-accessors-calls
Remove some calls to AbstractStorageDecl::getAccessor()
2 parents 1d20ddc + 496ff68 commit 34292da

File tree

5 files changed

+9
-9
lines changed

5 files changed

+9
-9
lines changed

lib/SILOptimizer/Differentiation/Common.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ void emitZeroIntoBuffer(SILBuilder &builder, CanType type,
378378
auto zeroDeclLookup = additiveArithmeticProto->lookupDirect(astCtx.Id_zero);
379379
auto *zeroDecl = cast<VarDecl>(zeroDeclLookup.front());
380380
assert(zeroDecl->isProtocolRequirement());
381-
auto *accessorDecl = zeroDecl->getAccessor(AccessorKind::Get);
381+
auto *accessorDecl = zeroDecl->getOpaqueAccessor(AccessorKind::Get);
382382
SILDeclRef accessorDeclRef(accessorDecl, SILDeclRef::Kind::Func);
383383
auto silFnType = typeConverter.getConstantType(
384384
TypeExpansionContext::minimal(), accessorDeclRef);

lib/SILOptimizer/Differentiation/PullbackEmitter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1444,7 +1444,7 @@ PullbackEmitter::getArrayAdjointElementBuffer(SILValue arrayAdjoint,
14441444
}
14451445
}
14461446
assert(subscriptDecl && "No `Array.TangentVector.subscript`");
1447-
auto *subscriptGetterDecl = subscriptDecl->getAccessor(AccessorKind::Get);
1447+
auto *subscriptGetterDecl = subscriptDecl->getOpaqueAccessor(AccessorKind::Get);
14481448
assert(subscriptGetterDecl && "No `Array.TangentVector.subscript` getter");
14491449
SILOptFunctionBuilder fb(getContext().getTransform());
14501450
auto *subscriptGetterFn = fb.getOrCreateFunction(

lib/Sema/TypeCheckAttr.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -897,8 +897,8 @@ void AttributeChecker::visitSPIAccessControlAttr(SPIAccessControlAttr *attr) {
897897
// implementation defines `set` if the protocol declares it.
898898
if (auto protoStorage = dyn_cast<AbstractStorageDecl>(VD))
899899
if (auto entryStorage = dyn_cast<AbstractStorageDecl>(entryDecl))
900-
if (protoStorage->getAccessor(AccessorKind::Set) &&
901-
!entryStorage->getAccessor(AccessorKind::Set))
900+
if (protoStorage->supportsMutation() &&
901+
!entryStorage->supportsMutation())
902902
return false;
903903

904904
return true;
@@ -3655,7 +3655,7 @@ static AbstractFunctionDecl *findAbstractFunctionDecl(
36553655
// If the candidate is an `AbstractStorageDecl`, use its getter as the
36563656
// candidate.
36573657
if (auto *asd = dyn_cast<AbstractStorageDecl>(decl))
3658-
candidate = asd->getAccessor(AccessorKind::Get);
3658+
candidate = asd->getOpaqueAccessor(AccessorKind::Get);
36593659
if (!candidate) {
36603660
notFunction = true;
36613661
continue;
@@ -4288,7 +4288,7 @@ IndexSubset *DifferentiableAttributeTypeCheckRequest::evaluate(
42884288
D->getAttrs().removeAttribute(attr);
42894289
// Transfer `@differentiable` attribute from storage declaration to
42904290
// getter accessor.
4291-
auto *getterDecl = asd->getAccessor(AccessorKind::Get);
4291+
auto *getterDecl = asd->getOpaqueAccessor(AccessorKind::Get);
42924292
auto *newAttr = DifferentiableAttr::create(
42934293
getterDecl, /*implicit*/ true, attr->AtLoc, attr->getRange(),
42944294
attr->isLinear(), resolvedDiffParamIndices,

lib/Sema/TypeCheckProtocol.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ matchWitnessDifferentiableAttr(DeclContext *dc, ValueDecl *req,
331331
ASTContext &ctx = witness->getASTContext();
332332
auto *witnessAFD = dyn_cast<AbstractFunctionDecl>(witness);
333333
if (auto *witnessASD = dyn_cast<AbstractStorageDecl>(witness))
334-
witnessAFD = witnessASD->getAccessor(AccessorKind::Get);
334+
witnessAFD = witnessASD->getOpaqueAccessor(AccessorKind::Get);
335335
// NOTE: Validate `@differentiable` attributes by calling
336336
// `getParameterIndices`. This is important for type-checking
337337
// `@differentiable` attributes in non-primary files to skip invalid
@@ -2935,7 +2935,7 @@ printRequirementStub(ValueDecl *Requirement, DeclContext *Adopter,
29352935
// wondering why a conformance fails.
29362936
if (!AdopterIsClass)
29372937
if (const auto VD = dyn_cast<VarDecl>(Requirement))
2938-
if (const auto Set = VD->getAccessor(AccessorKind::Set))
2938+
if (const auto Set = VD->getOpaqueAccessor(AccessorKind::Set))
29392939
if (Set->getAttrs().hasAttribute<NonMutatingAttr>())
29402940
Options.PrintPropertyAccessors = true;
29412941
}

lib/TBDGen/TBDGen.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,7 @@ void TBDGenVisitor::visitAbstractStorageDecl(AbstractStorageDecl *ASD) {
731731
for (const auto *differentiableAttr :
732732
ASD->getAttrs().getAttributes<DifferentiableAttr>())
733733
addDerivativeConfiguration(
734-
ASD->getAccessor(AccessorKind::Get),
734+
ASD->getOpaqueAccessor(AccessorKind::Get),
735735
AutoDiffConfig(differentiableAttr->getParameterIndices(),
736736
IndexSubset::get(ASD->getASTContext(), 1, {0}),
737737
differentiableAttr->getDerivativeGenericSignature()));

0 commit comments

Comments
 (0)