If a rule is written to produce a constant value, then not all iterations of loops within it need to be executed. Execution can stop via early return once the first iteration that produces a value has been executed.
This brings forth the question : What if one of the subsequent iterations would have resulted in an error?
e.g:
x {
[1, "hello"][_] + 1
}
If a rule is written to produce a constant value, then not all iterations of loops within it need to be executed. Execution can stop via early return once the first iteration that produces a value has been executed.
This brings forth the question : What if one of the subsequent iterations would have resulted in an error? e.g: x { [1, "hello"][_] + 1 }
Such errors are not raised; consistent with OPA.