Skip to content

Conversation

@gabritto
Copy link
Member

@gabritto gabritto commented Jul 26, 2021

Fixes #44970

In short, the checker crash was caused by the fact that properties that go through a mapped type with an as clause don't have declarations attached to their symbols (#44609), but addPropertyToElementList, a function used for serializing type nodes, relied on late-bound property symbols having declarations (propertySymbol.declarations).

The fix here is to make the part of addPropertyToElementList that relies on propertySymbol.declarations actually check if declarations is defined before accessing it.
In addition, there is now a declaration emit reporter for when we reach a late-bound symbol that has no declarations attached, as that should be an error since we shouldn't serialize that property type for declaration emit purposes.

@typescript-bot typescript-bot added the For Uncommitted Bug PR for untriaged, rejected, closed or missing bug label Jul 26, 2021
@gabritto gabritto changed the title gabritto/issue44970 Fix compiler crash on property symbols without declarations Jul 26, 2021
@typescript-bot typescript-bot added For Milestone Bug PRs that fix a bug with a specific milestone and removed For Uncommitted Bug PR for untriaged, rejected, closed or missing bug labels Jul 26, 2021
@gabritto gabritto requested review from sandersn and weswigham July 26, 2021 20:25
@gabritto gabritto requested a review from weswigham July 27, 2021 18:03
@gabritto gabritto marked this pull request as ready for review July 27, 2021 18:07
@RyanCavanaugh
Copy link
Member

@weswigham gtg?

@gabritto gabritto merged commit 366e9de into main Jul 29, 2021
@gabritto gabritto deleted the gabritto/issue44970 branch July 29, 2021 19:42
@microsoft microsoft locked as resolved and limited conversation to collaborators Oct 21, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

For Milestone Bug PRs that fix a bug with a specific milestone

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Crash report

5 participants