mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
211 lines
5.0 KiB
YAML
211 lines
5.0 KiB
YAML
# Copyright (c) Microsoft Corporation.
|
|
# Licensed under the MIT License.
|
|
|
|
cases:
|
|
- note: namespace
|
|
rego: |
|
|
package test
|
|
import future.keywords
|
|
num_expressions: 3
|
|
imports:
|
|
- span: import future.keywords
|
|
refr:
|
|
refdot:
|
|
span: future.keywords
|
|
refr:
|
|
var: future
|
|
eidx: 1
|
|
field: keywords
|
|
eidx: 2
|
|
|
|
- note: all
|
|
rego: |
|
|
package test
|
|
import future.keywords.contains import future.keywords.every
|
|
import future.keywords.if
|
|
import
|
|
future.keywords.in
|
|
num_expressions: 13
|
|
imports:
|
|
- span: import future.keywords.contains
|
|
refr:
|
|
refdot:
|
|
span: future.keywords.contains
|
|
refr:
|
|
refdot:
|
|
span: future.keywords
|
|
refr:
|
|
var: future
|
|
eidx: 1
|
|
field: keywords
|
|
eidx: 2
|
|
field: contains
|
|
eidx: 3
|
|
- span: import future.keywords.every
|
|
refr:
|
|
refdot:
|
|
span: future.keywords.every
|
|
refr:
|
|
refdot:
|
|
span: future.keywords
|
|
refr:
|
|
var: future
|
|
eidx: 4
|
|
field: keywords
|
|
eidx: 5
|
|
field: every
|
|
eidx: 6
|
|
- span: import future.keywords.if
|
|
refr:
|
|
refdot:
|
|
span: future.keywords.if
|
|
refr:
|
|
refdot:
|
|
span: future.keywords
|
|
refr:
|
|
var: future
|
|
eidx: 7
|
|
field: keywords
|
|
eidx: 8
|
|
field: if
|
|
eidx: 9
|
|
- span: "import\nfuture.keywords.in"
|
|
refr:
|
|
refdot:
|
|
span: future.keywords.in
|
|
refr:
|
|
refdot:
|
|
span: future.keywords
|
|
refr:
|
|
var: future
|
|
eidx: 10
|
|
field: keywords
|
|
eidx: 11
|
|
field: in
|
|
eidx: 12
|
|
|
|
- note: bracket
|
|
rego: |
|
|
package test
|
|
import future["keywords"]["contains"] import future.keywords["every"]
|
|
import
|
|
future["keywords"].if
|
|
num_expressions: 14
|
|
num_statements: 0
|
|
num_queries: 0
|
|
imports:
|
|
- span: import future["keywords"]["contains"]
|
|
refr:
|
|
refbrack:
|
|
span: future["keywords"]["contains"]
|
|
refr:
|
|
refbrack:
|
|
span: future["keywords"]
|
|
refr:
|
|
var: future
|
|
eidx: 1
|
|
index:
|
|
string: keywords
|
|
eidx: 2
|
|
eidx: 3
|
|
index:
|
|
string: contains
|
|
eidx: 4
|
|
eidx: 5
|
|
- span: import future.keywords["every"]
|
|
refr:
|
|
refbrack:
|
|
span: future.keywords["every"]
|
|
refr:
|
|
refdot:
|
|
span: future.keywords
|
|
refr:
|
|
var: future
|
|
eidx: 6
|
|
field: keywords
|
|
eidx: 7
|
|
index:
|
|
string: every
|
|
eidx: 8
|
|
eidx: 9
|
|
- span: "import\nfuture[\"keywords\"].if"
|
|
refr:
|
|
refdot:
|
|
span: future["keywords"].if
|
|
refr:
|
|
refbrack:
|
|
span: future["keywords"]
|
|
refr:
|
|
var: future
|
|
eidx: 10
|
|
index:
|
|
string: keywords
|
|
eidx: 11
|
|
eidx: 12
|
|
field: if
|
|
eidx: 13
|
|
|
|
- note: as
|
|
rego: |
|
|
package test
|
|
import future.keywords.in as on
|
|
error: "`future` imports cannot be aliased"
|
|
|
|
- note: shadow
|
|
rego: |
|
|
package test
|
|
import future.keywords
|
|
import future["keywords"]
|
|
#error: "this import shadows previous import of `contains`"
|
|
query: data.test
|
|
num_expressions: 6
|
|
num_queries: 0
|
|
num_statements: 0
|
|
want_result: {}
|
|
|
|
- note: invalid-future-component
|
|
rego: |
|
|
package test
|
|
import future.keywords.foo.bar
|
|
error: "invalid future keyword"
|
|
|
|
- note: shadow/1
|
|
rego: |
|
|
package test
|
|
import future.keywords
|
|
import future.keywords.if
|
|
#error: "this import shadows previous import of `if`"
|
|
num_expressions: 6
|
|
num_queries: 0
|
|
num_statements: 0
|
|
query: data.test
|
|
want_result: {}
|
|
|
|
- note: shadow/2
|
|
rego: |
|
|
package test
|
|
import future.keywords.if
|
|
import future.keywords
|
|
#error: "this import shadows previous import of `if`"
|
|
query: data.test
|
|
num_expressions: 6
|
|
num_queries: 0
|
|
num_statements: 0
|
|
want_result: {}
|
|
|
|
- note: in-as-var
|
|
rego: |
|
|
package test
|
|
import future.keywords.if
|
|
in = 5
|
|
num_expressions: 6
|
|
num_queries: 0
|
|
num_statements: 0
|
|
|
|
- note: in-as-var-imported
|
|
rego: |
|
|
package test
|
|
import future.keywords.in
|
|
in = 5
|
|
error: unexpected keyword `in`
|