Skip to content
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

project references out of memory crash #30429

Closed
leemhenson opened this issue Mar 15, 2019 · 10 comments · Fixed by #31541
Closed

project references out of memory crash #30429

leemhenson opened this issue Mar 15, 2019 · 10 comments · Fixed by #31541
Assignees
Labels
Bug A bug in TypeScript Crash For flagging bugs which are compiler or service crashes or unclean exits, rather than bad output Fixed A PR has been merged for this issue

Comments

@leemhenson
Copy link

TypeScript Version: 3.4.0-dev.20190315

Search Terms: project references composite oom

Code

https://github.com/leemhenson/project-refs-oom-repro

Expected behavior:

After doing the yarn install dance, cd stacks/project-one && tsc -b --verbose should complete without any issues.

Actual behavior:

cd stacks/project-one && tsc -b --verbose hangs and gradually chomps up enough memory to stack overflow. The cause is the Option<Date> annotation here:

https://github.com/leemhenson/project-refs-oom-repro/blob/master/stacks/project-one/src/app.ts#L5

Related Issues:

#25023
#29597

@leemhenson leemhenson changed the title project refs oom project references out of memory crash Mar 18, 2019
@leemhenson
Copy link
Author

I've been debugging this a little. This is going to be a brain dump of findings so far.

  1. The crash occurs on the line with the Option annotation.
  2. Option is a union of None and Some.
  3. Both the fp-ts from src and the fp-ts from stacks have been "found" by tsc by the point at which it starts the type checker phase (checker.ts). So tsc knows about two None types and two Some types.
  4. The checker is checking the v1 variable declaration and it attempts to see whether the Option type being returned from makeSharedOption is the same Option type that has been annotated on v1.
  5. Stack trace of "uninteresting" stuff:
checkVariableDeclaration
checkVariableLikeDeclaration
checkTypeAssignableToAndOptionallyElaborate
checkTypeRelatedToAndOptionallyElaborate
isTypeRelatedTo
checkTypeRelatedTo
isRelatedTo
eachTypeRelatedToType
isRelatedTo
typeRelatedToSomeType
isRelatedTo
recursiveTypeRelatedTo
structuredTypeRelatedTo
propertiesRelatedTo
  1. At propertiesRelatedTo, tsc iterates over every property on the type. The first function it hits is map (https://github.com/gcanti/fp-ts/blob/master/src/Option.ts#L132). At this point it starts reading signatures and generic arguments etc.

At this point, it's already gone off down the wrong path imo. Some earlier check should have been able to say "Aha, I have two None types. I can see they are loaded from different paths in node_modules, but let me see whether they are actually the same version of the same library".

@leemhenson
Copy link
Author

My guess is that any library that exports a reasonably complex set of types will be at risk of this crash. It just so happens that fp-ts is particularly complex so it hits the limit straight away.

@leemhenson
Copy link
Author

@DanielRosenwasser Do you have any pointers on how I would go about writing a test case to cover this scenario? Or is there a similar test case for some other feature that I could use as a guide? I'm struggling a bit to find a decent start point. 🤔

@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 labels Mar 25, 2019
@DanielRosenwasser
Copy link
Member

Your repro seems small enough that we should be able to work with it. I think @RyanCavanaugh and I are just a little overdue for triaging.

@leemhenson
Copy link
Author

Great, thanks! I know you're pretty busy with 3.4 and 3.5 so if this isn't likely to make it in those cycles then I'd like to hack on it myself (it's a blocker for us using project refs). If someone could give me a leg up on the right way to cover a failure mode like this with a test, I can maybe gather some more useful intel.

@leemhenson
Copy link
Author

Futher braindumping:

  • The package version is stored in PackageId for each import.
  • Associations are made (named redirectInfo) when the same file for the same package version is imported in multiple places. So there is clearly some machinery in place for deduplicating imports of the same types from the same package versions.
  • I think need to figure out how to get from isTypeRelatedTo to PackageId somehow. It looks to me that once we enter the world of checker.ts, the PackageId info is no longer in scope.
  • @RyanCavanaugh Does my proposed amendment to isTypeRelatedTo go against the structural nature of TypeScript?

@leemhenson
Copy link
Author

Full stack trace:

getAnonymousTypeInstantiation (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:10991)
instantiateTypeWorker (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11228)
instantiateType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11211)
getTypeOfInstantiatedSymbol (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:5779)
getTypeOfSymbol (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:5809)
getTypeOfParameter (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:21909)
tryGetTypeAtPosition (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:21941)
getTypeAtPosition (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:21935)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13850)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
eachTypeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12533)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12453)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareSignaturesIdentical (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13851)
signaturesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13400)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13304)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
compareProperties (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13783)
propertiesIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13293)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13133)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12450)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12315)
checkTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12162)
isTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12120)
isTypeIdenticalTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11392)
typeIdenticalToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:15084)
inferFromTypes (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:14688)
inferFromContravariantTypes (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:14907)
applyToParameterTypes (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:14407)
inferFromSignature (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:15055)
inferFromSignatures (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:15045)
inferFromObjectTypes (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:14995)
inferFromTypes (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:14886)
inferTypes (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:14644)
(anonymous function) (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:20308)
applyToParameterTypes (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:14407)
instantiateSignatureInContextOf (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:20306)
compareSignaturesRelated (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11849)
signatureRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13388)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13357)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13249)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12372)
eachTypeRelatedToType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12673)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12368)
compareSignaturesRelated (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11943)
signatureRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13388)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13357)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13249)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12372)
eachTypeRelatedToType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12673)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12368)
compareSignaturesRelated (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11943)
signatureRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13388)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13364)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13249)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12372)
eachTypeRelatedToType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12673)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12368)
compareSignaturesRelated (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11903)
signatureRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13388)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13357)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13249)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12372)
eachTypeRelatedToType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12673)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12368)
compareSignaturesRelated (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11903)
signatureRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13388)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13357)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13249)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12372)
eachTypeRelatedToType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12673)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12368)
compareSignaturesRelated (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11903)
signatureRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13388)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13357)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13249)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12372)
eachTypeRelatedToType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12673)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12368)
compareSignaturesRelated (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11943)
signatureRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13388)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13357)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13249)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12372)
eachTypeRelatedToType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12673)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12368)
compareSignaturesRelated (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11943)
signatureRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13388)
signaturesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13357)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13050)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
propertiesRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13249)
structuredTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:13048)
recursiveTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12778)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12395)
typeRelatedToSomeType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12548)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12372)
eachTypeRelatedToType (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12673)
isRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12368)
checkTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12162)
isTypeRelatedTo (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:12120)
checkTypeRelatedToAndOptionallyElaborate (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11463)
checkTypeAssignableToAndOptionallyElaborate (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:11459)
checkVariableLikeDeclaration (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:26393)
checkVariableDeclaration (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:26467)
checkSourceElementWorker (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:28709)
checkSourceElement (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:28567)
forEach (/Users/leehenson/src/TypeScript/src/compiler/core.ts:323)
checkVariableStatement (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:26478)
checkSourceElementWorker (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:28678)
checkSourceElement (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:28567)
forEach (/Users/leehenson/src/TypeScript/src/compiler/core.ts:323)
checkSourceFileWorker (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:28898)
checkSourceFile (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:28864)
getDiagnosticsWorker (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:28955)
getDiagnostics (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:28939)
getEmitResolver (/Users/leehenson/src/TypeScript/src/compiler/checker.ts:794)
emitWorker (/Users/leehenson/src/TypeScript/src/compiler/program.ts:1571)
(anonymous function) (/Users/leehenson/src/TypeScript/src/compiler/program.ts:1522)
runWithCancellationToken (/Users/leehenson/src/TypeScript/src/compiler/program.ts:1646)
emit (/Users/leehenson/src/TypeScript/src/compiler/program.ts:1522)
getFileEmitOutput (/Users/leehenson/src/TypeScript/src/compiler/builderState.ts:20)
updateShapeSignature (/Users/leehenson/src/TypeScript/src/compiler/builderState.ts:347)
getFilesAffectedByUpdatedShapeWhenModuleEmit (/Users/leehenson/src/TypeScript/src/compiler/builderState.ts:559)
getFilesAffectedBy (/Users/leehenson/src/TypeScript/src/compiler/builderState.ts:302)
getNextAffectedFile (/Users/leehenson/src/TypeScript/src/compiler/builder.ts:383)
getSemanticDiagnostics (/Users/leehenson/src/TypeScript/src/compiler/builder.ts:928)
buildSingleProject (/Users/leehenson/src/TypeScript/src/compiler/tsbuild.ts:1120)
buildAllProjects (/Users/leehenson/src/TypeScript/src/compiler/tsbuild.ts:1418)
performBuild (/Users/leehenson/src/TypeScript/src/tsc/tsc.ts:230)
executeCommandLine (/Users/leehenson/src/TypeScript/src/tsc/tsc.ts:59)
(anonymous function) (/Users/leehenson/src/TypeScript/src/tsc/tsc.ts:421)
Module._compile (loader.js:796)
Module._extensions..js (loader.js:810)
Module.load (loader.js:666)
tryModuleLoad (loader.js:606)
Module._load (loader.js:598)
Module.runMain (loader.js:862)
(anonymous function) (run_main_module.js:21)

@leemhenson
Copy link
Author

@RyanCavanaugh I'm trying to build a short-circuit into isIdenticalTo in checker.ts. I can write a clause that detects when the source and target Types are pointing to the "same" type imported from my two different node_modules directories. I now want to traverse back to the package version for those Types, but I can't see how to get there. Is there something else I can use from a closure?

For example, I've got source.symbol.parent.valueDeclaration.__debugKind === "SourceFile" and that valueDeclaration has the path on it, but there's no property that gets me a Version or similar.

I want to eventually write source.<something>.packagename === target.<something>.packagename && source.<something>.version === target.<something>.version then I will return true from isIdenticalTo.

@sheetalkamat
Copy link
Member

The issue here is that there is mismatch in package id for the duplicate id file:
First file (from referencing project) was added with package id fp-ts/lib/Option.d.ts@1.17.1
while the one from referenced project is added with fp-ts/lib/Option/index.d.ts@1.17.1

@cyberixae
Copy link

cyberixae commented May 27, 2019

I'm still encountering the problem when using yarn link. Can someone confirm if this happens to you too with npm link or yarn link? Copying the files manually under node_modules seems to fix the situation. I'm using TypeScript version "3.5.0-dev.20190525".

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 Fixed A PR has been merged for this issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants