Skip to content

Commit dd6847a

Browse files
committed
checkProtocolSelfRequirements can be static
1 parent 7676eb0 commit dd6847a

File tree

3 files changed

+11
-10
lines changed

3 files changed

+11
-10
lines changed

lib/Sema/TypeCheckDecl.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2580,7 +2580,7 @@ class DeclChecker : public DeclVisitor<DeclChecker> {
25802580
if (!SD->isInvalid()) {
25812581
TC.checkReferencedGenericParams(SD);
25822582
checkGenericParams(SD->getGenericParams(), SD);
2583-
TC.checkProtocolSelfRequirements(SD);
2583+
TypeChecker::checkProtocolSelfRequirements(SD);
25842584
}
25852585

25862586
TypeChecker::checkDeclAttributes(SD);
@@ -3188,7 +3188,7 @@ class DeclChecker : public DeclVisitor<DeclChecker> {
31883188
if (!FD->isInvalid()) {
31893189
checkGenericParams(FD->getGenericParams(), FD);
31903190
TC.checkReferencedGenericParams(FD);
3191-
TC.checkProtocolSelfRequirements(FD);
3191+
TypeChecker::checkProtocolSelfRequirements(FD);
31923192
}
31933193

31943194
checkAccessControl(TC, FD);
@@ -3429,7 +3429,7 @@ class DeclChecker : public DeclVisitor<DeclChecker> {
34293429
if (!CD->isInvalid()) {
34303430
checkGenericParams(CD->getGenericParams(), CD);
34313431
TC.checkReferencedGenericParams(CD);
3432-
TC.checkProtocolSelfRequirements(CD);
3432+
TypeChecker::checkProtocolSelfRequirements(CD);
34333433
}
34343434

34353435
TypeChecker::checkDeclAttributes(CD);

lib/Sema/TypeCheckGeneric.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ void TypeChecker::checkProtocolSelfRequirements(ValueDecl *decl) {
246246
// For a generic requirement in a protocol, make sure that the requirement
247247
// set didn't add any requirements to Self or its associated types.
248248
if (auto *proto = dyn_cast<ProtocolDecl>(decl->getDeclContext())) {
249+
auto &ctx = proto->getASTContext();
249250
auto protoSelf = proto->getSelfInterfaceType();
250251
auto sig = decl->getInnermostDeclContext()->getGenericSignatureOfContext();
251252
for (auto req : sig->getRequirements()) {
@@ -261,12 +262,12 @@ void TypeChecker::checkProtocolSelfRequirements(ValueDecl *decl) {
261262
req.getFirstType()->is<GenericTypeParamType>())
262263
continue;
263264

264-
diagnose(decl,
265-
diag::requirement_restricts_self,
266-
decl->getDescriptiveKind(), decl->getFullName(),
267-
req.getFirstType().getString(),
268-
static_cast<unsigned>(req.getKind()),
269-
req.getSecondType().getString());
265+
ctx.Diags.diagnose(decl,
266+
diag::requirement_restricts_self,
267+
decl->getDescriptiveKind(), decl->getFullName(),
268+
req.getFirstType().getString(),
269+
static_cast<unsigned>(req.getKind()),
270+
req.getSecondType().getString());
270271
}
271272
}
272273
}

lib/Sema/TypeChecker.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1034,7 +1034,7 @@ class TypeChecker final : public LazyResolver {
10341034

10351035
/// For a generic requirement in a protocol, make sure that the requirement
10361036
/// set didn't add any requirements to Self or its associated types.
1037-
void checkProtocolSelfRequirements(ValueDecl *decl);
1037+
static void checkProtocolSelfRequirements(ValueDecl *decl);
10381038

10391039
/// All generic parameters of a generic function must be referenced in the
10401040
/// declaration's type, otherwise we have no way to infer them.

0 commit comments

Comments
 (0)