Skip to content

Commit 34ce9bd

Browse files
committed
checkReferencedGenericParams can be static
1 parent dd6847a commit 34ce9bd

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

lib/Sema/TypeCheckDecl.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2578,7 +2578,7 @@ class DeclChecker : public DeclVisitor<DeclChecker> {
25782578
(void) SD->getGenericSignature();
25792579

25802580
if (!SD->isInvalid()) {
2581-
TC.checkReferencedGenericParams(SD);
2581+
TypeChecker::checkReferencedGenericParams(SD);
25822582
checkGenericParams(SD->getGenericParams(), SD);
25832583
TypeChecker::checkProtocolSelfRequirements(SD);
25842584
}
@@ -3187,7 +3187,7 @@ class DeclChecker : public DeclVisitor<DeclChecker> {
31873187

31883188
if (!FD->isInvalid()) {
31893189
checkGenericParams(FD->getGenericParams(), FD);
3190-
TC.checkReferencedGenericParams(FD);
3190+
TypeChecker::checkReferencedGenericParams(FD);
31913191
TypeChecker::checkProtocolSelfRequirements(FD);
31923192
}
31933193

@@ -3428,7 +3428,7 @@ class DeclChecker : public DeclVisitor<DeclChecker> {
34283428

34293429
if (!CD->isInvalid()) {
34303430
checkGenericParams(CD->getGenericParams(), CD);
3431-
TC.checkReferencedGenericParams(CD);
3431+
TypeChecker::checkReferencedGenericParams(CD);
34323432
TypeChecker::checkProtocolSelfRequirements(CD);
34333433
}
34343434

lib/Sema/TypeCheckGeneric.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,7 @@ void TypeChecker::checkReferencedGenericParams(GenericContext *dc) {
421421

422422
// Check that every generic parameter type from the signature is
423423
// among referencedGenericParams.
424+
auto &ctx = decl->getASTContext();
424425
for (auto *genParam : genericSig->getGenericParams()) {
425426
auto *paramDecl = genParam->getDecl();
426427
if (paramDecl->getDepth() != fnGenericParamsDepth)
@@ -438,9 +439,10 @@ void TypeChecker::checkReferencedGenericParams(GenericContext *dc) {
438439
continue;
439440
}
440441
// Produce an error that this generic parameter cannot be bound.
441-
diagnose(paramDecl->getLoc(), diag::unreferenced_generic_parameter,
442-
paramDecl->getNameStr());
443-
decl->setInterfaceType(ErrorType::get(Context));
442+
ctx.Diags.diagnose(paramDecl->getLoc(),
443+
diag::unreferenced_generic_parameter,
444+
paramDecl->getNameStr());
445+
decl->setInterfaceType(ErrorType::get(ctx));
444446
decl->setInvalid();
445447
}
446448
}

lib/Sema/TypeChecker.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1038,7 +1038,7 @@ class TypeChecker final : public LazyResolver {
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.
1041-
void checkReferencedGenericParams(GenericContext *dc);
1041+
static void checkReferencedGenericParams(GenericContext *dc);
10421042

10431043
/// Construct a new generic environment for the given declaration context.
10441044
///

0 commit comments

Comments
 (0)