Files
regorus/tests/interpreter/cases/compr/tricky.yaml
Anand Krishnamoorthi 8003cfc5b7 fix: Handle parsing corner cases (#309)
A block with a single or expression needs to be treated as a comprehension instead of a
set/array with 1 item. e.g.: {1 | 1 }, [2 | foo]

Allow successfully parsing object comprehensions as rule body
x if { 1:2 | 1 }

fixes #306, fixes #307

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2024-09-04 10:02:14 -07:00

46 lines
844 B
YAML

# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
cases:
- note: treat { 1 | 1 } as comprehension
data: {}
modules:
- |
package test
import rego.v1
x if { 1 | 1 }
y := { 1 | 1 }
z := { (1) | 1}
# Parsed as a set
a := { ({1} | {2}) }
b := v if { { 1 | 1 } = v }
query: data.test
want_result:
x: true
y:
set!: [1]
z:
set!: [1]
a:
set!:
- set!: [1, 2]
b:
set!: [1]
- note: rule body is object comprehension
data: {}
modules:
- |
package test
import future.keywords
x if { 1:2 | some p in [1,2] }
y := 2 if { 1:2 | some p in [1,2] }
query: data.test
want_result:
x: true
y: 2