Skip to main content

superfluous-object-get

Summary: Superfluous object.get call

Category: Idiomatic

Avoid

package policy

allow if {
object.get(input, ["path", "to", "value"], "default") == "expected"
}

Prefer

package policy

allow if {
input.path.to.value == "expected"
}

Rationale​

The object.get function is sometimes used to guard against undefined references halting evaluation. Immediately comparing the result of the call to a constant value that isn't the same as the default is however superfluous, as the expression will evaluate the same without using object.get. In such cases the call can simply be removed.

Configuration Options​

This linter rule provides the following configuration options:

.regal/config.yaml or .regal.yaml
rules:
idiomatic:
superfluous-object-get:
# one of "error", "warning", "ignore"
level: error