-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
feat(typescript-estree): use a jump table instead of switch/case for conversion logic #6371
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
Conversation
Thanks for the PR, @bradzacher! typescript-eslint is a 100% community driven project, and we are incredibly grateful that you are contributing to that community. The core maintainers work on this in their personal time, so please understand that it may not be possible for them to review your work immediately. Thanks again! 🙏 Please, if you or your company is finding typescript-eslint valuable, help us sustain the project by sponsoring it transparently on https://opencollective.com/typescript-eslint. |
✅ Deploy Preview for typescript-eslint ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
I spent some time testing and retesting this on the large codebase at canva (~48k files) where they don't use type-aware linting. It really is just insignificant - not worth landing this, closing. |
PR Checklist
Overview
This PR converts the parser's internal conversion logic from a switch to a jump table.
I tried two different versions of this:
I found the following results:
I was hoping for a bit more than that, but ultimately that's not a that bad. In the grand scheme of things, however, this is only a ~0.2% reduction in the total lint time for our repo. This is because on our codebase the lint rules themselves take ~70% of the overall lint time - because we use type-aware rules.
TODO: