Skip to content

Commit c58e0aa

Browse files
committed
[Constraint system] Make sure we set expression types on StmtCondition.
1 parent b94a5c8 commit c58e0aa

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

lib/Sema/CSApply.cpp

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7171,13 +7171,8 @@ namespace {
71717171
[&](SolutionApplicationTarget target) {
71727172
auto resultTarget = rewriteTarget(target);
71737173
if (resultTarget) {
7174-
7175-
if (auto expr = resultTarget->getAsExpr()) {
7174+
if (auto expr = resultTarget->getAsExpr())
71767175
Rewriter.solution.setExprTypes(expr);
7177-
} else if (auto stmtCondition =
7178-
resultTarget->getAsStmtCondition()) {
7179-
7180-
}
71817176
}
71827177

71837178
return resultTarget;
@@ -7454,6 +7449,7 @@ ExprWalker::rewriteTarget(SolutionApplicationTarget target) {
74547449
return None;
74557450

74567451
// Load the condition if needed.
7452+
solution.setExprTypes(finalCondExpr);
74577453
if (finalCondExpr->getType()->hasLValueType()) {
74587454
ASTContext &ctx = solution.getConstraintSystem().getASTContext();
74597455
finalCondExpr = TypeChecker::addImplicitLoadExpr(ctx, finalCondExpr);
@@ -7470,6 +7466,7 @@ ExprWalker::rewriteTarget(SolutionApplicationTarget target) {
74707466
if (!resolvedTarget)
74717467
return None;
74727468

7469+
solution.setExprTypes(resolvedTarget->getAsExpr());
74737470
condElement.setInitializer(resolvedTarget->getAsExpr());
74747471
condElement.setPattern(resolvedTarget->getInitializationPattern());
74757472
continue;
@@ -7490,8 +7487,8 @@ ExprWalker::rewriteTarget(SolutionApplicationTarget target) {
74907487
[&](SolutionApplicationTarget target) {
74917488
auto resultTarget = rewriteTarget(target);
74927489
if (resultTarget) {
7493-
SetExprTypes typeSetter(solution);
7494-
resultTarget->walk(typeSetter);
7490+
if (auto expr = resultTarget->getAsExpr())
7491+
solution.setExprTypes(expr);
74957492
}
74967493

74977494
return resultTarget;

0 commit comments

Comments
 (0)