Merge pull request #516 from anakrish/rvm-opa-2

Handle more OPA semantics in RVM and compiler
This commit is contained in:
Anand Krishnamoorthi
2025-12-16 11:28:36 -06:00
committed by GitHub
12 changed files with 250 additions and 49 deletions

View File

@@ -22,28 +22,18 @@ const OPA_BRANCH: &str = "v1.2.0";
const OPA_TODO_FOLDERS: &[&str] = &[
"aggregates",
"baseandvirtualdocs",
"comparisonexpr",
"dataderef",
"defaultkeyword",
"disjunction",
"elsekeyword",
"eqexpr",
"every",
"example",
"fix1863",
"functions",
"jsonschema",
"partialdocconstants",
"partialobjectdoc",
"planner-ir",
"rand",
"refheads",
"replacen",
"semverisvalid",
"sets",
"time",
"type",
"varreferences",
"virtualdocs",
"walkbuiltin",
"withkeyword",

View File

@@ -0,0 +1,15 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
cases:
- note: builtin_rand_intn_cache_consistency
data: {}
modules:
- |
package test
rands := { rand.intn("seed", 100) | numbers.range(1, 100)[_] }
np := count(rands)
query: data.test.np
want_result: 1

View File

@@ -196,6 +196,30 @@ cases:
query: data.test.main
want_result: "web1"
- note: literal_array_root_access
data: {}
modules:
- |
package test
y := ["x", "y"][1]
main := y
query: data.test.main
want_result: "y"
- note: computed_object_root_access
data: {}
modules:
- |
package test
x := strings.replace_n({k: v | k := ["f", "foo"][i]; v := ["x", "xxx"][i]}, "foo")
main := x
query: data.test.main
want_result: "xoo"
- note: string_literal_bracket_access
data: {}
modules:

View File

@@ -48,3 +48,15 @@ cases:
}
query: data.test.main
want_result: true
- note: equality_literal_failure
data: {}
modules:
- |
package test
x if {
0 = 1
}
query: data.test.x
want_result: "#undefined"

View File

@@ -13,3 +13,13 @@ cases:
main := [(x * 2) | some x in [1, 2, 3]]
query: data.test.main
want_result: [2, 4, 6]
- note: comprehension_equality_failure_returns_empty
data: {}
modules:
- |
package test
z := [x | x := 1; x == 2]
query: data.test.z
want_result: []