Back to Opa

unconditional-assignment

docs/projects/regal/rules/style/unconditional-assignment.md

1.16.11.2 KB
Original Source

unconditional-assignment

Summary: Unconditional assignment in rule body

Category: Style

Avoid

rego
package policy

full_name := name if {
    name := concat(", ", [input.first_name, input.last_name])
}

divide_by_ten(x) := y if {
    y := x / 10
}

names contains name if {
    name := "Regal"
}

Prefer

rego
package policy

full_name := concat(", ", [input.first_name, input.last_name])

divide_by_ten(x) := x / 10

names contains "Regal"

Rationale

Rules that return values unconditionally should place the assignment directly in the rule head, as doing so in the rule body adds unnecessary noise.

Configuration Options

This linter rule provides the following configuration options:

yaml
rules:
  style:
    unconditional-assignment:
      # one of "error", "warning", "ignore"
      level: error