Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
SamVerschueren opened this issue Jul 12, 2024 · 5 comments
Closed
Assignees
Labels
Bug A bug in TypeScript Crash For flagging bugs which are compiler or service crashes or unclean exits, rather than bad output Domain: JS Emit The issue relates to the emission of JavaScript Fix Available A PR has been opened for this issue Fixed A PR has been merged for this issue

Comments

@SamVerschueren
Copy link

SamVerschueren commented Jul 12, 2024

πŸ”Ž Search Terms

"maximum call stack size"

πŸ•— Version & Regression Information

  • This is a crash
  • This changed between versions 5.4.5 and 5.5.2

⏯ Playground Link

No response

πŸ’» Code

Not sure which code causes the crash.

πŸ™ Actual behavior

When compiling monaco-editor with [email protected] 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 [email protected])
  3. Update TypeScript by running npm install [email protected]
  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
Copy link
Member

DanielRosenwasser commented Jul 12, 2024

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
Copy link
Member

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 (<anonymous>)
    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
Copy link
Member

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

@DanielRosenwasser DanielRosenwasser added Bug A bug in TypeScript Crash For flagging bugs which are compiler or service crashes or unclean exits, rather than bad output Domain: JS Emit The issue relates to the emission of JavaScript labels Jul 17, 2024
@DanielRosenwasser DanielRosenwasser added this to the TypeScript 5.5.4 milestone Jul 17, 2024
@weswigham
Copy link
Member

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
Copy link
Member

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?

@weswigham weswigham added Fixed A PR has been merged for this issue Fix Available A PR has been opened for this issue labels Jul 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug A bug in TypeScript Crash For flagging bugs which are compiler or service crashes or unclean exits, rather than bad output Domain: JS Emit The issue relates to the emission of JavaScript Fix Available A PR has been opened for this issue Fixed A PR has been merged for this issue
Projects
None yet
Development

No branches or pull requests

3 participants