Skip to content

Remove SymbolLinks.typeChecked #23

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
wants to merge 1 commit into from
Closed

Remove SymbolLinks.typeChecked #23

wants to merge 1 commit into from

Conversation

JsonFreeman
Copy link
Contributor

Because multiple declarations of different kinds can be combined into a single symbol, the SymbolLinks.typeChecked flag gets overloaded to signal that an expensive task has been done. Unfortunately, for certain combinations of kinds, this flag actually prevents certain checks from ever executing. The only example I have found is a function and an interface. The function overload checks are hidden behind the flag, and so are the interface index constraint checks. So we only ever hit one of them.

This change removes the typeChecked flag, and instead only executes the checks when visiting the first declaration of the same kind as the node. That will ensure we only do the work once per symbol per kind.

@DanielRosenwasser
Copy link
Member

What are the perf implications of this? Does it not really matter since nodes have their own TypeChecked flag?

@microsoft microsoft locked and limited conversation to collaborators Jun 18, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants