Skip to content

Commit 01691d6

Browse files
committed
[ConstraintSystem] ExpressionTimer: Simplify locators only if allotted time has been exceeded
1 parent eb6b267 commit 01691d6

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

lib/Sema/ConstraintSystem.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,11 @@ ExpressionTimer::~ExpressionTimer() {
7676
if (!PrintWarning)
7777
return;
7878

79+
const auto WarnLimit = getWarnLimit();
80+
81+
if (WarnLimit == 0 || elapsedMS < WarnLimit)
82+
return;
83+
7984
ASTNode anchor;
8085
if (auto *locator = Anchor.dyn_cast<ConstraintLocator *>()) {
8186
anchor = simplifyLocatorToAnchor(locator);
@@ -87,9 +92,7 @@ ExpressionTimer::~ExpressionTimer() {
8792
anchor = Anchor.get<Expr *>();
8893
}
8994

90-
const auto WarnLimit = getWarnLimit();
91-
if (WarnLimit != 0 && elapsedMS >= WarnLimit &&
92-
anchor.getStartLoc().isValid()) {
95+
if (anchor.getStartLoc().isValid()) {
9396
Context.Diags
9497
.diagnose(anchor.getStartLoc(), diag::debug_long_expression, elapsedMS,
9598
WarnLimit)

0 commit comments

Comments
 (0)