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

Add external/public linter #144

Merged
merged 21 commits into from
Jul 19, 2022
Merged

Add external/public linter #144

merged 21 commits into from
Jul 19, 2022

Conversation

samhh
Copy link
Contributor

@samhh samhh commented Jun 24, 2022

This PR adds an external/public linter for rules which theoretically all users of intlc would find useful, and adds a rule there to lint against {x, select, other {y}}. A select with only a wildcard branch is redundant and should be replaced with y.

The rule itself covers the first half of #136 (lint against lone wildcard) and #108 (parse/allow lone wildcard), but leaves alone #27 (case ordering). Plurals to come in another PR to prevent this one getting too large. I suggest reviewing commit-by-commit as most of them are small.

Most of the diff is due to a change to select in the AST. It's now represented with the These type: there can be cases, or a wildcard, or both.

At some point we may need to think about merging the rules in some sense so we're not iterating anew for each rule, a bit like how ESLint gives you selectors to match against. We can cross that bridge when we come to it: #143

@samhh samhh requested a review from a team as a code owner June 24, 2022 12:50
@samhh samhh requested a review from mlegenhausen June 24, 2022 12:50
@samhh
Copy link
Contributor Author

samhh commented Jun 27, 2022

Note to self: Add some tests for the new lint rule. Done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant