File tree Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -35685,9 +35685,21 @@ namespace ts {
35685
35685
}
35686
35686
35687
35687
if (i < maxExpensiveStatementCount) {
35688
- expensiveStatements.splice(i, 0, record);
35689
- if (expensiveStatements.length > maxExpensiveStatementCount) {
35690
- expensiveStatements.pop();
35688
+ let hasExpensiveDescendent = false;
35689
+ // Search forward since descendants cannot be more expensive
35690
+ for (let j = i; j < expensiveStatements.length; j++) {
35691
+ const candidate = expensiveStatements[j];
35692
+ if (isNodeDescendantOf(candidate.node, record.node)) {
35693
+ // A node that isn't at least 50% more expensive than one of its descendants isn't interesting
35694
+ hasExpensiveDescendent = (record.typeDelta / candidate.typeDelta) < 1.5;
35695
+ break; // Stop looking since all subsequent nodes are less expensive
35696
+ }
35697
+ }
35698
+ if (!hasExpensiveDescendent) {
35699
+ expensiveStatements.splice(i, 0, record);
35700
+ if (expensiveStatements.length > maxExpensiveStatementCount) {
35701
+ expensiveStatements.pop();
35702
+ }
35691
35703
}
35692
35704
}
35693
35705
}
You can’t perform that action at this time.
0 commit comments