@@ -1168,11 +1168,13 @@ namespace {
1168
1168
/* trailingClosureMatching=*/ std::nullopt ,
1169
1169
CurDC, fnLocator);
1170
1170
1171
- Type fixedOutputType =
1172
- CS.getFixedTypeRecursive (outputTy, /* wantRValue=*/ false );
1173
- if (!fixedOutputType->isTypeVariableOrMember ()) {
1174
- CS.setFavoredType (anchor, fixedOutputType.getPointer ());
1175
- outputTy = fixedOutputType;
1171
+ if (CS.performanceHacksEnabled ()) {
1172
+ Type fixedOutputType =
1173
+ CS.getFixedTypeRecursive (outputTy, /* wantRValue=*/ false );
1174
+ if (!fixedOutputType->isTypeVariableOrMember ()) {
1175
+ CS.setFavoredType (anchor, fixedOutputType.getPointer ());
1176
+ outputTy = fixedOutputType;
1177
+ }
1176
1178
}
1177
1179
1178
1180
return outputTy;
@@ -1614,9 +1616,11 @@ namespace {
1614
1616
}
1615
1617
}
1616
1618
1617
- if (!knownType->hasPlaceholder ()) {
1618
- // Set the favored type for this expression to the known type.
1619
- CS.setFavoredType (E, knownType.getPointer ());
1619
+ if (CS.performanceHacksEnabled ()) {
1620
+ if (!knownType->hasPlaceholder ()) {
1621
+ // Set the favored type for this expression to the known type.
1622
+ CS.setFavoredType (E, knownType.getPointer ());
1623
+ }
1620
1624
}
1621
1625
}
1622
1626
}
@@ -2085,8 +2089,10 @@ namespace {
2085
2089
CS.getASTContext ());
2086
2090
}
2087
2091
2088
- if (auto favoredTy = CS.getFavoredType (expr->getSubExpr ())) {
2089
- CS.setFavoredType (expr, favoredTy);
2092
+ if (CS.performanceHacksEnabled ()) {
2093
+ if (auto favoredTy = CS.getFavoredType (expr->getSubExpr ())) {
2094
+ CS.setFavoredType (expr, favoredTy);
2095
+ }
2090
2096
}
2091
2097
return CS.getType (expr->getSubExpr ());
2092
2098
}
@@ -3373,11 +3379,13 @@ namespace {
3373
3379
3374
3380
// If we ended up resolving the result type variable to a concrete type,
3375
3381
// set it as the favored type for this expression.
3376
- Type fixedType =
3377
- CS.getFixedTypeRecursive (resultType, /* wantRvalue=*/ true );
3378
- if (!fixedType->isTypeVariableOrMember ()) {
3379
- CS.setFavoredType (expr, fixedType.getPointer ());
3380
- resultType = fixedType;
3382
+ if (CS.performanceHacksEnabled ()) {
3383
+ Type fixedType =
3384
+ CS.getFixedTypeRecursive (resultType, /* wantRvalue=*/ true );
3385
+ if (!fixedType->isTypeVariableOrMember ()) {
3386
+ CS.setFavoredType (expr, fixedType.getPointer ());
3387
+ resultType = fixedType;
3388
+ }
3381
3389
}
3382
3390
3383
3391
return resultType;
@@ -5184,7 +5192,7 @@ ConstraintSystem::applyPropertyWrapperToParameter(
5184
5192
}
5185
5193
5186
5194
void ConstraintSystem::optimizeConstraints (Expr *e) {
5187
- if (getASTContext (). TypeCheckerOpts . DisableConstraintSolverPerformanceHacks )
5195
+ if (! performanceHacksEnabled () )
5188
5196
return ;
5189
5197
5190
5198
SmallVector<Expr *, 16 > linkedExprs;
0 commit comments