@@ -7171,13 +7171,8 @@ namespace {
7171
7171
[&](SolutionApplicationTarget target) {
7172
7172
auto resultTarget = rewriteTarget (target);
7173
7173
if (resultTarget) {
7174
-
7175
- if (auto expr = resultTarget->getAsExpr ()) {
7174
+ if (auto expr = resultTarget->getAsExpr ())
7176
7175
Rewriter.solution .setExprTypes (expr);
7177
- } else if (auto stmtCondition =
7178
- resultTarget->getAsStmtCondition ()) {
7179
-
7180
- }
7181
7176
}
7182
7177
7183
7178
return resultTarget;
@@ -7454,6 +7449,7 @@ ExprWalker::rewriteTarget(SolutionApplicationTarget target) {
7454
7449
return None;
7455
7450
7456
7451
// Load the condition if needed.
7452
+ solution.setExprTypes (finalCondExpr);
7457
7453
if (finalCondExpr->getType ()->hasLValueType ()) {
7458
7454
ASTContext &ctx = solution.getConstraintSystem ().getASTContext ();
7459
7455
finalCondExpr = TypeChecker::addImplicitLoadExpr (ctx, finalCondExpr);
@@ -7470,6 +7466,7 @@ ExprWalker::rewriteTarget(SolutionApplicationTarget target) {
7470
7466
if (!resolvedTarget)
7471
7467
return None;
7472
7468
7469
+ solution.setExprTypes (resolvedTarget->getAsExpr ());
7473
7470
condElement.setInitializer (resolvedTarget->getAsExpr ());
7474
7471
condElement.setPattern (resolvedTarget->getInitializationPattern ());
7475
7472
continue ;
@@ -7490,8 +7487,8 @@ ExprWalker::rewriteTarget(SolutionApplicationTarget target) {
7490
7487
[&](SolutionApplicationTarget target) {
7491
7488
auto resultTarget = rewriteTarget (target);
7492
7489
if (resultTarget) {
7493
- SetExprTypes typeSetter (solution);
7494
- resultTarget-> walk (typeSetter );
7490
+ if ( auto expr = resultTarget-> getAsExpr ())
7491
+ solution. setExprTypes (expr );
7495
7492
}
7496
7493
7497
7494
return resultTarget;
0 commit comments