microsoft / TypeScript

TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
https://www.typescriptlang.org
Apache License 2.0
100.06k stars 12.37k forks source link

RangeError: Maximum call stack size exceeded when building monaco (5.5.2) #59253

Closed SamVerschueren closed 1 month ago

SamVerschueren commented 1 month ago

🔎 Search Terms

"maximum call stack size"

🕗 Version & Regression Information

⏯ Playground Link

No response

💻 Code

Not sure which code causes the crash.

🙁 Actual behavior

When compiling monaco-editor with TypeScript@5.5.2 or higher, it will result in a Maximum call stack size exceeded.

  1. Open https://stackblitz.com/~/github.com/microsoft/monaco-editor or clone https://github.com/microsoft/monaco-editor locally
  2. Run npm run build-monaco-editor (this will work as it uses TypeScript@5.4.5)
  3. Update TypeScript by running npm install typescript@5.5.2
  4. Run npm run build-monaco-editor again (this will fail)

🙂 Expected behavior

When compiling monaco-editor with the latest TypeScript, I shouldn't be seeing a Maximum call stack size exceeded.

Additional information about the issue

No response

DanielRosenwasser commented 1 month ago
The error: ``` tsc.js:120127 throw e; ^ RangeError: Maximum call stack size exceeded at getJSDocParameterTags (tsc.js:11418:31) at isJSDocOptionalParameter (tsc.js:18706:67) at isOptionalDeclaration (tsc.js:18714:45) at getTypeForVariableLikeDeclaration (tsc.js:54091:46) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkNonNullExpression (tsc.js:72591:29) at checkPropertyAccessExpression (tsc.js:72670:162) at checkExpressionWorker (tsc.js:78436:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onLeft (tsc.js:77381:16) at Array.left (tsc.js:26986:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at checkIfExpressionRefinesAnyParameter (tsc.js:76569:24) at getTypePredicateFromBody (tsc.js:76561:12) at getTypePredicateOfSignature (tsc.js:57757:45) at hasTypePredicateOrNeverReturnType (tsc.js:67996:15) at getEffectsSignature (tsc.js:67991:57) at narrowTypeByCallExpression (tsc.js:69116:72) at narrowType (tsc.js:69187:18) at getTypeAtFlowCondition (tsc.js:68393:28) at getTypeAtFlowNode (tsc.js:68226:18) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getFlowTypeOfReference (tsc.js:68177:45) at checkIdentifier (tsc.js:69927:134) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77957:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at checkDeclarationInitializer (tsc.js:78058:9) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77957:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onLeft (tsc.js:77381:16) at Array.left (tsc.js:26986:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkTruthinessExpression (tsc.js:81037:34) at checkConditionalExpression (tsc.js:77954:18) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at getTypeOfExpression (tsc.js:78297:18) at getAssignedTypeOfBinaryExpression (tsc.js:67615:103) at getAssignedType (tsc.js:67640:16) at getInitialOrAssignedType (tsc.js:68269:120) at getTypeAtFlowAssignment (tsc.js:68287:54) at getTypeAtFlowNode (tsc.js:68214:18) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getFlowTypeOfReference (tsc.js:68177:45) at checkIdentifier (tsc.js:69927:134) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77956:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77957:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at checkDeclarationInitializer (tsc.js:78058:9) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77957:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onLeft (tsc.js:77381:16) at Array.left (tsc.js:26986:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkTruthinessExpression (tsc.js:81037:34) at checkConditionalExpression (tsc.js:77954:18) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at getTypeOfExpression (tsc.js:78297:18) at getAssignedTypeOfBinaryExpression (tsc.js:67615:103) at getAssignedType (tsc.js:67640:16) at getInitialOrAssignedType (tsc.js:68269:120) at getTypeAtFlowAssignment (tsc.js:68287:54) at getTypeAtFlowNode (tsc.js:68214:18) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getFlowTypeOfReference (tsc.js:68177:45) at checkIdentifier (tsc.js:69927:134) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77956:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77957:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at checkDeclarationInitializer (tsc.js:78058:9) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77957:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onLeft (tsc.js:77381:16) at Array.left (tsc.js:26986:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkTruthinessExpression (tsc.js:81037:34) at checkConditionalExpression (tsc.js:77954:18) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at getTypeOfExpression (tsc.js:78297:18) at getAssignedTypeOfBinaryExpression (tsc.js:67615:103) at getAssignedType (tsc.js:67640:16) at getInitialOrAssignedType (tsc.js:68269:120) at getTypeAtFlowAssignment (tsc.js:68287:54) at getTypeAtFlowNode (tsc.js:68214:18) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getFlowTypeOfReference (tsc.js:68177:45) at checkIdentifier (tsc.js:69927:134) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77956:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77957:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at checkDeclarationInitializer (tsc.js:78058:9) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77957:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onLeft (tsc.js:77381:16) at Array.left (tsc.js:26986:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkTruthinessExpression (tsc.js:81037:34) at checkConditionalExpression (tsc.js:77954:18) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at getTypeOfExpression (tsc.js:78297:18) at getAssignedTypeOfBinaryExpression (tsc.js:67615:103) at getAssignedType (tsc.js:67640:16) at getInitialOrAssignedType (tsc.js:68269:120) at getTypeAtFlowAssignment (tsc.js:68287:54) at getTypeAtFlowNode (tsc.js:68214:18) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getFlowTypeOfReference (tsc.js:68177:45) at checkIdentifier (tsc.js:69927:134) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77956:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77957:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at checkDeclarationInitializer (tsc.js:78058:9) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77957:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onLeft (tsc.js:77381:16) at Array.left (tsc.js:26986:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkTruthinessExpression (tsc.js:81037:34) at checkConditionalExpression (tsc.js:77954:18) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at getTypeOfExpression (tsc.js:78297:18) at getAssignedTypeOfBinaryExpression (tsc.js:67615:103) at getAssignedType (tsc.js:67640:16) at getInitialOrAssignedType (tsc.js:68269:120) at getTypeAtFlowAssignment (tsc.js:68287:54) at getTypeAtFlowNode (tsc.js:68214:18) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getFlowTypeOfReference (tsc.js:68177:45) at checkIdentifier (tsc.js:69927:134) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77956:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onLeft (tsc.js:77381:16) at Array.left (tsc.js:26986:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at checkDeclarationInitializer (tsc.js:78058:9) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onLeft (tsc.js:77381:16) at Array.left (tsc.js:26986:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at checkDeclarationInitializer (tsc.js:78058:9) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onLeft (tsc.js:77381:16) at Array.left (tsc.js:26986:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkTruthinessExpression (tsc.js:81037:34) at checkConditionalExpression (tsc.js:77954:18) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at getTypeOfExpression (tsc.js:78297:18) at getAssignedTypeOfBinaryExpression (tsc.js:67615:103) at getAssignedType (tsc.js:67640:16) at getInitialOrAssignedType (tsc.js:68269:120) at getTypeAtFlowAssignment (tsc.js:68287:54) at getTypeAtFlowNode (tsc.js:68214:18) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getFlowTypeOfReference (tsc.js:68177:45) at checkIdentifier (tsc.js:69927:134) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onLeft (tsc.js:77381:16) at Array.left (tsc.js:26986:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at getContextFreeTypeOfExpression (tsc.js:78346:42) at addEvolvingArrayElementType (tsc.js:67853:80) at getTypeAtFlowArrayMutation (tsc.js:68370:32) at getTypeAtFlowNode (tsc.js:68236:18) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowLoopLabel (tsc.js:68499:22) at getTypeAtFlowNode (tsc.js:68234:81) at getFlowTypeOfReference (tsc.js:68177:45) at checkIdentifier (tsc.js:69927:134) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkConditionalExpression (tsc.js:77956:19) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseClause (tsc.js:27572:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInCaseBlock (tsc.js:27569:12) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInSwitchStatement (tsc.js:27566:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionWithContextualType (tsc.js:78006:18) at getSignatureApplicabilityError (tsc.js:73836:25) at chooseOverload (tsc.js:74373:13) at resolveCall (tsc.js:74220:16) at resolveCallExpression (tsc.js:74657:12) at resolveSignature (tsc.js:75050:16) at getResolvedSignature (tsc.js:75076:18) at checkCallExpression (tsc.js:75187:23) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onLeft (tsc.js:77381:16) at Array.left (tsc.js:26986:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at checkTruthinessExpression (tsc.js:81037:34) at checkConditionalExpression (tsc.js:77954:18) at checkExpressionWorker (tsc.js:78482:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at maybeCheckExpression (tsc.js:77445:28) at BinaryExpressionStateMachine.onRight (tsc.js:77409:16) at Array.right (tsc.js:27006:30) at trampoline (tsc.js:27090:42) at tsc.js:77339:22 at checkExpressionWorker (tsc.js:78480:16) at checkExpression (tsc.js:78356:32) at getTypeOfExpression (tsc.js:78297:18) at getAssignedTypeOfBinaryExpression (tsc.js:67615:103) at getAssignedType (tsc.js:67640:16) at getInitialOrAssignedType (tsc.js:68269:120) at getTypeAtFlowAssignment (tsc.js:68287:54) at getTypeAtFlowNode (tsc.js:68214:18) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowBranchLabel (tsc.js:68434:26) at getTypeAtFlowNode (tsc.js:68234:48) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getTypeAtFlowCondition (tsc.js:68386:24) at getTypeAtFlowNode (tsc.js:68226:18) at getFlowTypeOfReference (tsc.js:68177:45) at checkIdentifier (tsc.js:69927:134) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at getReturnTypeOfSingleNonGenericCallSignature (tsc.js:78276:14) at getQuickTypeOfExpression (tsc.js:78327:94) at checkDeclarationInitializer (tsc.js:78052:18) at getTypeForVariableLikeDeclaration (tsc.js:54146:66) at getWidenedTypeForVariableLikeDeclaration (tsc.js:54593:48) at getTypeOfVariableOrParameterOrPropertyWorker (tsc.js:54741:14) at getTypeOfVariableOrParameterOrProperty (tsc.js:54674:20) at getTypeOfSymbol (tsc.js:55003:14) at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78402:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNode2 (tsc.js:27307:18) at forEachChildInIfStatement (tsc.js:27540:51) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) at traverse (tsc.js:13855:16) at forEachReturnStatement (tsc.js:13835:10) at checkAndAggregateReturnExpressionTypes (tsc.js:76486:5) at getReturnTypeFromBody (tsc.js:76299:21) at getReturnTypeOfSignature (tsc.js:57786:426) at checkCallExpression (tsc.js:75212:24) at checkExpressionWorker (tsc.js:78446:16) at checkExpression (tsc.js:78356:32) at checkExpressionCached (tsc.js:78030:28) at tsc.js:76505:20 at traverse (tsc.js:13839:16) at visitNodes (tsc.js:27315:22) at forEachChildInBlock (tsc.js:27785:10) at forEachChild (tsc.js:27828:35) Node.js v22.4.0 ```
DanielRosenwasser commented 1 month ago
Closer to the bottom of the stack: ``` at getNarrowedTypeOfSymbol (tsc.js:69744:18) at checkIdentifier (tsc.js:69883:16) at checkExpressionWorker (tsc.js:78403:16) at checkExpression (tsc.js:78357:32) at checkExpressionCached (tsc.js:78031:28) at markPropertyAliasReferenced (tsc.js:69498:36) at markLinkedReferences (tsc.js:69447:18) at Object.markLinkedReferences (tsc.js:85597:24) at tsc.js:113196:16 at forEachChildRecursively (tsc.js:27852:19) at markLinkedReferences (tsc.js:113193:5) at tsc.js:113055:105 at Array.forEach () at emitJsFileOrBundle (tsc.js:113053:125) at emitSourceFileOrBundle (tsc.js:113013:5) at forEachEmittedFile (tsc.js:112789:24) at emitFiles (tsc.js:112995:3) at tsc.js:120050:13 at Object.runWithCancellationToken (tsc.js:45533:16) at emitWorker (tsc.js:120048:37) at tsc.js:120029:51 at runWithCancellationToken (tsc.js:120125:14) at Object.emit (tsc.js:120029:20) at emitFilesAndReportErrors (tsc.js:125414:97) at emitFilesAndReportErrorsAndGetExitStatus (tsc.js:125443:39) ```

monaco is including /workspaces/monaco-editor/src/language/typescript/lib/typescriptServices.js in the compilation, I think intentionally. I think this only repros during emit, and I believe it's from processing that file. I don't know why we need to do all this work for JS emit.

DanielRosenwasser commented 1 month ago

Also, this goes away if you drop the config for checkJs: false.

weswigham commented 1 month ago

Huh, funny. Two things I wanna do then:

  1. Directly fix the stack overflow - whatever construct is making us choke, we should probably be able to handle, since it may occur in another context; I've explicitly used forEachChildRecursively in all of the AST walks, so it shouldn't be raw AST depth that's an issue - more likely there's accidental reentrancy I need to fix.
  2. As a perf optimization, we can probably skip the entire reference walking infrastructure on files that just don't have imports anymore, since there's nothing to actually record references to or possibly elide. Also just JS files in general, since they don't do import elision and don't need the information being calculated.
weswigham commented 1 month ago

So, weirdly enough, this is fixed in main, and by my measurements, because of #59183. That PR was not, explicitly, a crash bugfix, so that's a little odd, but reverting it does reintroduce the crash, so it is definitely the fix. This is a guess, but I assuming removing checkMode from getTypeOfVariableOrParameterOrProperty (thus ensuring it always caches) is what fixed the crash (since it does appear in the stack trace above).

In any case, that makes this "fixed", but to my second point above, I've opened #59398 with the fast bail-outs to avoid the reference walking pass in some common cases that don't need it.

@DanielRosenwasser this is scheduled for a patch release, but #59183 seems like an odd change to port, being a behavioral change - how do you feel about this?