Skip to content

Commit 6805266

Browse files
committed
[NFC] Sema: Extracted ReadImpl->Accessor function.
1 parent 5441539 commit 6805266

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

lib/Sema/TypeCheckStorage.cpp

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -629,6 +629,25 @@ Expr *PatternBindingCheckedAndContextualizedInitRequest::evaluate(
629629
return binding->getInit(i);
630630
}
631631

632+
static std::optional<AccessorKind>
633+
directAccessorKindForReadImpl(ReadImplKind reader) {
634+
switch (reader) {
635+
case ReadImplKind::Stored:
636+
case ReadImplKind::Inherited:
637+
return std::nullopt;
638+
639+
case ReadImplKind::Get:
640+
return AccessorKind::Get;
641+
642+
case ReadImplKind::Address:
643+
return AccessorKind::Address;
644+
645+
case ReadImplKind::Read:
646+
return AccessorKind::Read;
647+
}
648+
llvm_unreachable("bad impl kind");
649+
}
650+
632651
bool
633652
IsGetterMutatingRequest::evaluate(Evaluator &evaluator,
634653
AbstractStorageDecl *storage) const {
@@ -665,22 +684,11 @@ IsGetterMutatingRequest::evaluate(Evaluator &evaluator,
665684
if (isa<ProtocolDecl>(storageDC))
666685
return checkMutability(AccessorKind::Get);
667686

668-
switch (storage->getReadImpl()) {
669-
case ReadImplKind::Stored:
670-
case ReadImplKind::Inherited:
687+
auto accessor = directAccessorKindForReadImpl(storage->getReadImpl());
688+
if (!accessor)
671689
return false;
672690

673-
case ReadImplKind::Get:
674-
return checkMutability(AccessorKind::Get);
675-
676-
case ReadImplKind::Address:
677-
return checkMutability(AccessorKind::Address);
678-
679-
case ReadImplKind::Read:
680-
return checkMutability(AccessorKind::Read);
681-
}
682-
683-
llvm_unreachable("bad impl kind");
691+
return checkMutability(*accessor);
684692
}
685693

686694
/// As a special extra check, if the user also gave us a modify coroutine,

0 commit comments

Comments
 (0)