Skip to content

Commit 8ec0e39

Browse files
authored
Merge pull request #24151 from AnthonyLatsis/cleanup-func-subscript-validation
TypeChecker: consolidate func & subscript signature validation
2 parents ec1c2ee + 00e6ae1 commit 8ec0e39

File tree

4 files changed

+129
-299
lines changed

4 files changed

+129
-299
lines changed

lib/Sema/TypeCheckDecl.cpp

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4009,16 +4009,7 @@ void TypeChecker::validateDecl(ValueDecl *D) {
40094009
}
40104010
}
40114011

4012-
// If we have generic parameters, check the generic signature now.
4013-
if (FD->getGenericParams() || !isa<AccessorDecl>(FD)) {
4014-
validateGenericFuncSignature(FD);
4015-
} else {
4016-
// We've inherited all of the type information already.
4017-
FD->setGenericEnvironment(
4018-
FD->getDeclContext()->getGenericEnvironmentOfContext());
4019-
4020-
FD->computeType();
4021-
}
4012+
validateGenericFuncOrSubscriptSignature(FD, FD, FD);
40224013

40234014
if (!isa<AccessorDecl>(FD) || cast<AccessorDecl>(FD)->isGetter()) {
40244015
auto *TyR = getTypeLocForFunctionResult(FD).getTypeRepr();
@@ -4132,7 +4123,7 @@ void TypeChecker::validateDecl(ValueDecl *D) {
41324123
}
41334124
}
41344125

4135-
validateGenericFuncSignature(CD);
4126+
validateGenericFuncOrSubscriptSignature(CD, CD, CD);
41364127

41374128
// We want the constructor to be available for name lookup as soon
41384129
// as it has a valid interface type.
@@ -4156,7 +4147,7 @@ void TypeChecker::validateDecl(ValueDecl *D) {
41564147

41574148
checkDeclAttributesEarly(DD);
41584149

4159-
validateGenericFuncSignature(DD);
4150+
validateGenericFuncOrSubscriptSignature(DD, DD, DD);
41604151

41614152
DD->setSignatureIsValidated();
41624153

@@ -4169,7 +4160,7 @@ void TypeChecker::validateDecl(ValueDecl *D) {
41694160

41704161
DeclValidationRAII IBV(SD);
41714162

4172-
validateGenericSubscriptSignature(SD);
4163+
validateGenericFuncOrSubscriptSignature(SD, SD, SD);
41734164

41744165
SD->setSignatureIsValidated();
41754166

0 commit comments

Comments
 (0)