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"]
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
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
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`