2323#include " swift/AST/ParameterList.h"
2424#include " swift/AST/PrettyStackTrace.h"
2525#include " swift/AST/SubstitutionMap.h"
26+ #include " swift/AST/TypeCheckRequests.h"
2627#include " swift/Sema/IDETypeChecking.h"
2728#include " swift/Subsystems.h"
2829#include " llvm/ADT/APInt.h"
@@ -1453,8 +1454,7 @@ namespace {
14531454 TypeResolutionOptions options (TypeResolverContext::InExpression);
14541455 options |= TypeResolutionFlags::AllowUnboundGenerics;
14551456 bool hadError = TypeChecker::validateType (
1456- CS.getASTContext (), loc,
1457- TypeResolution::forContextual (CS.DC , options));
1457+ loc, TypeResolution::forContextual (CS.DC , options));
14581458 return hadError ? Type () : loc.getType ();
14591459 }
14601460
@@ -1714,14 +1714,12 @@ namespace {
17141714 for (size_t i = 0 , size = specializations.size (); i < size; ++i) {
17151715 TypeResolutionOptions options (TypeResolverContext::InExpression);
17161716 options |= TypeResolutionFlags::AllowUnboundGenerics;
1717- auto tyLoc = TypeLoc{specializations[i]};
1718- if (TypeChecker::validateType (
1719- CS.getASTContext (), tyLoc,
1720- TypeResolution::forContextual (CS.DC , options)))
1717+ auto result = TypeResolution::forContextual (CS.DC , options)
1718+ .resolveType (specializations[i]);
1719+ if (result->hasError ())
17211720 return Type ();
17221721
1723- CS.addConstraint (ConstraintKind::Bind,
1724- typeVars[i], tyLoc.getType (),
1722+ CS.addConstraint (ConstraintKind::Bind, typeVars[i], result,
17251723 locator);
17261724 }
17271725
@@ -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
0 commit comments