Skip to content

Commit ab908f0

Browse files
committed
[Gardening] Remove the ASTContext parameter from TypeChecker::validateType
1 parent 005f8ad commit ab908f0

9 files changed

+22
-29
lines changed

lib/Sema/CSGen.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1453,8 +1453,7 @@ namespace {
14531453
TypeResolutionOptions options(TypeResolverContext::InExpression);
14541454
options |= TypeResolutionFlags::AllowUnboundGenerics;
14551455
bool hadError = TypeChecker::validateType(
1456-
CS.getASTContext(), loc,
1457-
TypeResolution::forContextual(CS.DC, options));
1456+
loc, TypeResolution::forContextual(CS.DC, options));
14581457
return hadError ? Type() : loc.getType();
14591458
}
14601459

@@ -1716,8 +1715,7 @@ namespace {
17161715
options |= TypeResolutionFlags::AllowUnboundGenerics;
17171716
auto tyLoc = TypeLoc{specializations[i]};
17181717
if (TypeChecker::validateType(
1719-
CS.getASTContext(), tyLoc,
1720-
TypeResolution::forContextual(CS.DC, options)))
1718+
tyLoc, TypeResolution::forContextual(CS.DC, options)))
17211719
return Type();
17221720

17231721
CS.addConstraint(ConstraintKind::Bind,
@@ -2660,7 +2658,7 @@ namespace {
26602658
pattern = pattern->getSemanticsProvidingPattern();
26612659
while (auto isp = dyn_cast<IsPattern>(pattern)) {
26622660
if (TypeChecker::validateType(
2663-
CS.getASTContext(), isp->getCastTypeLoc(),
2661+
isp->getCastTypeLoc(),
26642662
TypeResolution::forContextual(
26652663
CS.DC, TypeResolverContext::InExpression))) {
26662664
return false;
@@ -2986,7 +2984,7 @@ namespace {
29862984
TypeResolutionOptions options(TypeResolverContext::ExplicitCastExpr);
29872985
options |= TypeResolutionFlags::AllowUnboundGenerics;
29882986
if (TypeChecker::validateType(
2989-
CS.getASTContext(), expr->getCastTypeLoc(),
2987+
expr->getCastTypeLoc(),
29902988
TypeResolution::forContextual(CS.DC, options)))
29912989
return nullptr;
29922990

@@ -3015,7 +3013,7 @@ namespace {
30153013
TypeResolutionOptions options(TypeResolverContext::ExplicitCastExpr);
30163014
options |= TypeResolutionFlags::AllowUnboundGenerics;
30173015
if (TypeChecker::validateType(
3018-
CS.getASTContext(), expr->getCastTypeLoc(),
3016+
expr->getCastTypeLoc(),
30193017
TypeResolution::forContextual(CS.DC, options)))
30203018
return nullptr;
30213019

@@ -3042,7 +3040,6 @@ namespace {
30423040
}
30433041

30443042
Type visitConditionalCheckedCastExpr(ConditionalCheckedCastExpr *expr) {
3045-
auto &ctx = CS.getASTContext();
30463043
auto fromExpr = expr->getSubExpr();
30473044
if (!fromExpr) // Either wasn't constructed correctly or wasn't folded.
30483045
return nullptr;
@@ -3051,7 +3048,7 @@ namespace {
30513048
TypeResolutionOptions options(TypeResolverContext::ExplicitCastExpr);
30523049
options |= TypeResolutionFlags::AllowUnboundGenerics;
30533050
if (TypeChecker::validateType(
3054-
ctx, expr->getCastTypeLoc(),
3051+
expr->getCastTypeLoc(),
30553052
TypeResolution::forContextual(CS.DC, options)))
30563053
return nullptr;
30573054

@@ -3081,7 +3078,7 @@ namespace {
30813078
TypeResolutionOptions options(TypeResolverContext::ExplicitCastExpr);
30823079
options |= TypeResolutionFlags::AllowUnboundGenerics;
30833080
if (TypeChecker::validateType(
3084-
ctx, expr->getCastTypeLoc(),
3081+
expr->getCastTypeLoc(),
30853082
TypeResolution::forContextual(CS.DC, options)))
30863083
return nullptr;
30873084

lib/Sema/TypeCheckConstraints.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1918,7 +1918,7 @@ Expr *PreCheckExpression::simplifyTypeConstructionWithLiteralArg(Expr *E) {
19181918

19191919
typeLoc = TypeLoc(typeExpr->getTypeRepr(), Type());
19201920
bool hadError = TypeChecker::validateType(
1921-
getASTContext(), typeLoc, TypeResolution::forContextual(DC, options));
1921+
typeLoc, TypeResolution::forContextual(DC, options));
19221922

19231923
if (hadError)
19241924
return nullptr;

lib/Sema/TypeCheckDecl.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1435,8 +1435,8 @@ static NominalTypeDecl *resolveSingleNominalTypeDecl(
14351435

14361436
TypeResolutionOptions options = TypeResolverContext::TypeAliasDecl;
14371437
options |= flags;
1438-
if (TypeChecker::validateType(
1439-
Ctx, typeLoc, TypeResolution::forInterface(DC, options)))
1438+
if (TypeChecker::validateType(typeLoc,
1439+
TypeResolution::forInterface(DC, options)))
14401440
return nullptr;
14411441

14421442
return typeLoc.getType()->getAnyNominal();
@@ -1770,8 +1770,7 @@ UnderlyingTypeRequest::evaluate(Evaluator &evaluator,
17701770

17711771
auto underlyingLoc = TypeLoc(typeAlias->getUnderlyingTypeRepr());
17721772
if (TypeChecker::validateType(
1773-
typeAlias->getASTContext(), underlyingLoc,
1774-
TypeResolution::forInterface(typeAlias, options))) {
1773+
underlyingLoc, TypeResolution::forInterface(typeAlias, options))) {
17751774
typeAlias->setInvalid();
17761775
return ErrorType::get(typeAlias->getASTContext());
17771776
}
@@ -2124,7 +2123,7 @@ static Type validateParameterType(ParamDecl *decl) {
21242123

21252124
auto &ctx = dc->getASTContext();
21262125
auto resolution = TypeResolution::forInterface(dc, options);
2127-
if (TypeChecker::validateType(ctx, TL, resolution)) {
2126+
if (TypeChecker::validateType(TL, resolution)) {
21282127
decl->setInvalid();
21292128
return ErrorType::get(ctx);
21302129
}

lib/Sema/TypeCheckGeneric.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ OpaqueResultTypeRequest::evaluate(Evaluator &evaluator,
135135
// Pass along the error type if resolving the repr failed.
136136
auto resolution = TypeResolution::forInterface(
137137
dc, dc->getGenericSignatureOfContext(), options);
138-
bool validationError
139-
= TypeChecker::validateType(ctx, constraintTypeLoc, resolution);
138+
bool validationError =
139+
TypeChecker::validateType(constraintTypeLoc, resolution);
140140
auto constraintType = constraintTypeLoc.getType();
141141
if (validationError)
142142
return nullptr;

lib/Sema/TypeCheckPattern.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,7 @@ static Type validateTypedPattern(TypeResolution resolution,
694694
hadError = true;
695695
}
696696
} else {
697-
hadError = TypeChecker::validateType(Context, TL, resolution);
697+
hadError = TypeChecker::validateType(TL, resolution);
698698
}
699699

700700
if (hadError) {
@@ -1211,7 +1211,7 @@ Pattern *TypeChecker::coercePatternToType(ContextualPattern pattern,
12111211
// Type-check the type parameter.
12121212
TypeResolutionOptions paramOptions(TypeResolverContext::InExpression);
12131213
TypeResolution resolution = TypeResolution::forContextual(dc, paramOptions);
1214-
if (validateType(Context, IP->getCastTypeLoc(), resolution))
1214+
if (validateType(IP->getCastTypeLoc(), resolution))
12151215
return nullptr;
12161216

12171217
auto castType = IP->getCastTypeLoc().getType();

lib/Sema/TypeCheckPropertyWrapper.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -561,9 +561,7 @@ Type AttachedPropertyWrapperTypeRequest::evaluate(Evaluator &evaluator,
561561

562562
auto resolution =
563563
TypeResolution::forContextual(var->getDeclContext(), options);
564-
if (TypeChecker::validateType(var->getASTContext(),
565-
customAttr->getTypeLoc(),
566-
resolution)) {
564+
if (TypeChecker::validateType(customAttr->getTypeLoc(), resolution)) {
567565
return ErrorType::get(var->getASTContext());
568566
}
569567

lib/Sema/TypeCheckType.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1740,13 +1740,12 @@ static bool validateAutoClosureAttributeUse(DiagnosticEngine &Diags,
17401740
return !isValid;
17411741
}
17421742

1743-
bool TypeChecker::validateType(ASTContext &Context, TypeLoc &Loc,
1744-
TypeResolution resolution) {
1743+
bool TypeChecker::validateType(TypeLoc &Loc, TypeResolution resolution) {
17451744
// If we've already validated this type, don't do so again.
17461745
if (Loc.wasValidated())
17471746
return Loc.isError();
17481747

1749-
if (auto *Stats = Context.Stats)
1748+
if (auto *Stats = resolution.getASTContext().Stats)
17501749
Stats->getFrontendCounters().NumTypesValidated++;
17511750

17521751
Type type = resolution.resolveType(Loc.getTypeRepr());
@@ -3866,7 +3865,7 @@ Type swift::resolveCustomAttrType(CustomAttr *attr, DeclContext *dc,
38663865

38673866
ASTContext &ctx = dc->getASTContext();
38683867
auto resolution = TypeResolution::forContextual(dc, options);
3869-
if (TypeChecker::validateType(ctx, attr->getTypeLoc(), resolution))
3868+
if (TypeChecker::validateType(attr->getTypeLoc(), resolution))
38703869
return Type();
38713870

38723871
// We always require the type to resolve to a nominal type.

lib/Sema/TypeChecker.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ bool swift::performTypeLocChecking(ASTContext &Ctx, TypeLoc &T,
542542
Optional<DiagnosticSuppression> suppression;
543543
if (!ProduceDiagnostics)
544544
suppression.emplace(Ctx.Diags);
545-
return TypeChecker::validateType(Ctx, T, resolution);
545+
return TypeChecker::validateType(T, resolution);
546546
}
547547

548548
/// Expose TypeChecker's handling of GenericParamList to SIL parsing.

lib/Sema/TypeChecker.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ Expr *resolveDeclRefExpr(UnresolvedDeclRefExpr *UDRE, DeclContext *Context);
379379
/// \param resolution The type resolution being performed.
380380
///
381381
/// \returns true if type validation failed, or false otherwise.
382-
bool validateType(ASTContext &Ctx, TypeLoc &Loc, TypeResolution resolution);
382+
bool validateType(TypeLoc &Loc, TypeResolution resolution);
383383

384384
/// Check for unsupported protocol types in the given declaration.
385385
void checkUnsupportedProtocolType(Decl *decl);

0 commit comments

Comments
 (0)