unnecessary-some
Summary: Unnecessary use of some
Category: Style
Avoid
package policy
is_developer if some "developer" in input.user.roles
Prefer
package policy
is_developer if "developer" in input.user.roles
Rationale
Use the some .. in
construct when you want to loop over a collection and assign variables in the iteration. If you
know the value you're looking for, just use the in
keyword directly without using some
.
Exceptions
Note that some .. in
iteration can be used with a limited form of pattern matching where either the key or the value
should match for the loop assignment to succeed. This is not commonly needed, but considered OK.
package policy
developers contains name if {
# name will only be bound when the value is "developer"
some name, "developer" in {"alice": "developer", "bob": "developer", "charlie": "manager"}
}
Configuration Options
This linter rule provides the following configuration options:
rules:
style:
unnecessary-some:
# one of "error", "warning", "ignore"
level: error
Related Resources
- OPA Docs: Membership and iteration:
in
- GitHub: Source Code