File tree Expand file tree Collapse file tree 4 files changed +26
-10
lines changed Expand file tree Collapse file tree 4 files changed +26
-10
lines changed Original file line number Diff line number Diff line change @@ -317,16 +317,6 @@ namespace ts {
317
317
let constraintDepth = 0;
318
318
let currentNode: Node | undefined;
319
319
320
- interface ExpensiveStatement {
321
- node: Node;
322
- typeDelta: number;
323
- symbolDelta: number;
324
- }
325
-
326
- let ignoreExpensiveStatement = true;
327
- const maxExpensiveStatementCount = 5;
328
- const expensiveStatements: ExpensiveStatement[] = [];
329
-
330
320
const emptySymbols = createSymbolTable();
331
321
const arrayVariances = [VarianceFlags.Covariant];
332
322
@@ -343,6 +333,16 @@ namespace ts {
343
333
const keyofStringsOnly = !!compilerOptions.keyofStringsOnly;
344
334
const freshObjectLiteralFlag = compilerOptions.suppressExcessPropertyErrors ? 0 : ObjectFlags.FreshLiteral;
345
335
336
+ interface ExpensiveStatement {
337
+ node: Node;
338
+ typeDelta: number;
339
+ symbolDelta: number;
340
+ }
341
+
342
+ let ignoreExpensiveStatement = true;
343
+ const maxExpensiveStatementCount = compilerOptions.expensiveStatements ?? 0;
344
+ const expensiveStatements: ExpensiveStatement[] = [];
345
+
346
346
const emitResolver = createResolver();
347
347
const nodeBuilder = createNodeBuilder();
348
348
Original file line number Diff line number Diff line change @@ -219,6 +219,12 @@ namespace ts {
219
219
category : Diagnostics . Advanced_Options ,
220
220
description : Diagnostics . The_locale_used_when_displaying_messages_to_the_user_e_g_en_us
221
221
} ,
222
+ {
223
+ name : "expensiveStatements" ,
224
+ type : "number" ,
225
+ category : Diagnostics . Advanced_Options ,
226
+ description : Diagnostics . Heuristically_reports_statements_that_appear_to_contribute_disproportionately_to_check_time
227
+ } ,
222
228
] ;
223
229
224
230
/* @internal */
Original file line number Diff line number Diff line change 4473
4473
"category" : " Message" ,
4474
4474
"code" : 6235
4475
4475
},
4476
+ "Heuristically reports statements that appear to contribute disproportionately to check time." : {
4477
+ "category" : " Message" ,
4478
+ "code" : 6236
4479
+ },
4476
4480
4477
4481
"Projects to reference" : {
4478
4482
"category" : " Message" ,
5975
5979
"Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name." : {
5976
5980
"category" : " Error" ,
5977
5981
"code" : 18035
5982
+ },
5983
+
5984
+ "Checking this statement may result in the creation of as many as {0} types and {1} symbols." : {
5985
+ "category" : " Warning" ,
5986
+ "code" : 19000
5978
5987
}
5979
5988
}
Original file line number Diff line number Diff line change @@ -5674,6 +5674,7 @@ namespace ts {
5674
5674
downlevelIteration ?: boolean ;
5675
5675
emitBOM ?: boolean ;
5676
5676
emitDecoratorMetadata ?: boolean ;
5677
+ /*@internal */ expensiveStatements ?: number ;
5677
5678
experimentalDecorators ?: boolean ;
5678
5679
forceConsistentCasingInFileNames ?: boolean ;
5679
5680
/*@internal */ generateCpuProfile ?: string ;
You can’t perform that action at this time.
0 commit comments