Upgrade dependent version: github.com/open-policy-agent/opa (#5315)
Upgrade dependent version: github.com/open-policy-agent/opa v0.18.0 -> v0.45.0 Signed-off-by: hongzhouzi <hongzhouzi@kubesphere.io> Signed-off-by: hongzhouzi <hongzhouzi@kubesphere.io>
This commit is contained in:
131
vendor/github.com/open-policy-agent/opa/ast/visit.go
generated
vendored
131
vendor/github.com/open-policy-agent/opa/ast/visit.go
generated
vendored
@@ -52,6 +52,9 @@ func walk(v Visitor, x interface{}) {
|
||||
for _, r := range x.Rules {
|
||||
Walk(w, r)
|
||||
}
|
||||
for _, a := range x.Annotations {
|
||||
Walk(w, a)
|
||||
}
|
||||
for _, c := range x.Comments {
|
||||
Walk(w, c)
|
||||
}
|
||||
@@ -85,14 +88,12 @@ func walk(v Visitor, x interface{}) {
|
||||
}
|
||||
case *Expr:
|
||||
switch ts := x.Terms.(type) {
|
||||
case *SomeDecl:
|
||||
case *Term, *SomeDecl, *Every:
|
||||
Walk(w, ts)
|
||||
case []*Term:
|
||||
for _, t := range ts {
|
||||
Walk(w, t)
|
||||
}
|
||||
case *Term:
|
||||
Walk(w, ts)
|
||||
}
|
||||
for i := range x.With {
|
||||
Walk(w, x.With[i])
|
||||
@@ -106,15 +107,15 @@ func walk(v Visitor, x interface{}) {
|
||||
for _, t := range x {
|
||||
Walk(w, t)
|
||||
}
|
||||
case Object:
|
||||
case *object:
|
||||
x.Foreach(func(k, vv *Term) {
|
||||
Walk(w, k)
|
||||
Walk(w, vv)
|
||||
})
|
||||
case Array:
|
||||
for _, t := range x {
|
||||
case *Array:
|
||||
x.Foreach(func(t *Term) {
|
||||
Walk(w, t)
|
||||
}
|
||||
})
|
||||
case Set:
|
||||
x.Foreach(func(t *Term) {
|
||||
Walk(w, t)
|
||||
@@ -133,6 +134,13 @@ func walk(v Visitor, x interface{}) {
|
||||
for _, t := range x {
|
||||
Walk(w, t)
|
||||
}
|
||||
case *Every:
|
||||
if x.Key != nil {
|
||||
Walk(w, x.Key)
|
||||
}
|
||||
Walk(w, x.Value)
|
||||
Walk(w, x.Domain)
|
||||
Walk(w, x.Body)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,8 +160,8 @@ func WalkVars(x interface{}, f func(Var) bool) {
|
||||
// returns true, AST nodes under the last node will not be visited.
|
||||
func WalkClosures(x interface{}, f func(interface{}) bool) {
|
||||
vis := &GenericVisitor{func(x interface{}) bool {
|
||||
switch x.(type) {
|
||||
case *ArrayComprehension, *ObjectComprehension, *SetComprehension:
|
||||
switch x := x.(type) {
|
||||
case *ArrayComprehension, *ObjectComprehension, *SetComprehension, *Every:
|
||||
return f(x)
|
||||
}
|
||||
return false
|
||||
@@ -280,6 +288,9 @@ func (vis *GenericVisitor) Walk(x interface{}) {
|
||||
for _, r := range x.Rules {
|
||||
vis.Walk(r)
|
||||
}
|
||||
for _, a := range x.Annotations {
|
||||
vis.Walk(a)
|
||||
}
|
||||
for _, c := range x.Comments {
|
||||
vis.Walk(c)
|
||||
}
|
||||
@@ -313,14 +324,12 @@ func (vis *GenericVisitor) Walk(x interface{}) {
|
||||
}
|
||||
case *Expr:
|
||||
switch ts := x.Terms.(type) {
|
||||
case *SomeDecl:
|
||||
case *Term, *SomeDecl, *Every:
|
||||
vis.Walk(ts)
|
||||
case []*Term:
|
||||
for _, t := range ts {
|
||||
vis.Walk(t)
|
||||
}
|
||||
case *Term:
|
||||
vis.Walk(ts)
|
||||
}
|
||||
for i := range x.With {
|
||||
vis.Walk(x.With[i])
|
||||
@@ -334,15 +343,15 @@ func (vis *GenericVisitor) Walk(x interface{}) {
|
||||
for _, t := range x {
|
||||
vis.Walk(t)
|
||||
}
|
||||
case Object:
|
||||
for _, k := range x.Keys() {
|
||||
case *object:
|
||||
x.Foreach(func(k, v *Term) {
|
||||
vis.Walk(k)
|
||||
vis.Walk(x.Get(k))
|
||||
}
|
||||
case Array:
|
||||
for _, t := range x {
|
||||
})
|
||||
case *Array:
|
||||
x.Foreach(func(t *Term) {
|
||||
vis.Walk(t)
|
||||
}
|
||||
})
|
||||
case Set:
|
||||
for _, t := range x.Slice() {
|
||||
vis.Walk(t)
|
||||
@@ -361,6 +370,13 @@ func (vis *GenericVisitor) Walk(x interface{}) {
|
||||
for _, t := range x {
|
||||
vis.Walk(t)
|
||||
}
|
||||
case *Every:
|
||||
if x.Key != nil {
|
||||
vis.Walk(x.Key)
|
||||
}
|
||||
vis.Walk(x.Value)
|
||||
vis.Walk(x.Domain)
|
||||
vis.Walk(x.Body)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -398,6 +414,9 @@ func (vis *BeforeAfterVisitor) Walk(x interface{}) {
|
||||
for _, r := range x.Rules {
|
||||
vis.Walk(r)
|
||||
}
|
||||
for _, a := range x.Annotations {
|
||||
vis.Walk(a)
|
||||
}
|
||||
for _, c := range x.Comments {
|
||||
vis.Walk(c)
|
||||
}
|
||||
@@ -431,14 +450,12 @@ func (vis *BeforeAfterVisitor) Walk(x interface{}) {
|
||||
}
|
||||
case *Expr:
|
||||
switch ts := x.Terms.(type) {
|
||||
case *SomeDecl:
|
||||
case *Term, *SomeDecl, *Every:
|
||||
vis.Walk(ts)
|
||||
case []*Term:
|
||||
for _, t := range ts {
|
||||
vis.Walk(t)
|
||||
}
|
||||
case *Term:
|
||||
vis.Walk(ts)
|
||||
}
|
||||
for i := range x.With {
|
||||
vis.Walk(x.With[i])
|
||||
@@ -452,15 +469,15 @@ func (vis *BeforeAfterVisitor) Walk(x interface{}) {
|
||||
for _, t := range x {
|
||||
vis.Walk(t)
|
||||
}
|
||||
case Object:
|
||||
for _, k := range x.Keys() {
|
||||
case *object:
|
||||
x.Foreach(func(k, v *Term) {
|
||||
vis.Walk(k)
|
||||
vis.Walk(x.Get(k))
|
||||
}
|
||||
case Array:
|
||||
for _, t := range x {
|
||||
})
|
||||
case *Array:
|
||||
x.Foreach(func(t *Term) {
|
||||
vis.Walk(t)
|
||||
}
|
||||
})
|
||||
case Set:
|
||||
for _, t := range x.Slice() {
|
||||
vis.Walk(t)
|
||||
@@ -479,6 +496,13 @@ func (vis *BeforeAfterVisitor) Walk(x interface{}) {
|
||||
for _, t := range x {
|
||||
vis.Walk(t)
|
||||
}
|
||||
case *Every:
|
||||
if x.Key != nil {
|
||||
vis.Walk(x.Key)
|
||||
}
|
||||
vis.Walk(x.Value)
|
||||
vis.Walk(x.Domain)
|
||||
vis.Walk(x.Body)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -518,12 +542,14 @@ func (vis *VarVisitor) Vars() VarSet {
|
||||
return vis.vars
|
||||
}
|
||||
|
||||
// visit determines if the VarVisitor will recurse into x: if it returns `true`,
|
||||
// the visitor will _skip_ that branch of the AST
|
||||
func (vis *VarVisitor) visit(v interface{}) bool {
|
||||
if vis.params.SkipObjectKeys {
|
||||
if o, ok := v.(Object); ok {
|
||||
for _, k := range o.Keys() {
|
||||
vis.Walk(o.Get(k))
|
||||
}
|
||||
o.Foreach(func(k, v *Term) {
|
||||
vis.Walk(v)
|
||||
})
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -536,9 +562,15 @@ func (vis *VarVisitor) visit(v interface{}) bool {
|
||||
}
|
||||
}
|
||||
if vis.params.SkipClosures {
|
||||
switch v.(type) {
|
||||
switch v := v.(type) {
|
||||
case *ArrayComprehension, *ObjectComprehension, *SetComprehension:
|
||||
return true
|
||||
case *Expr:
|
||||
if ev, ok := v.Terms.(*Every); ok {
|
||||
vis.Walk(ev.Domain)
|
||||
// We're _not_ walking ev.Body -- that's the closure here
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
if vis.params.SkipWithTarget {
|
||||
@@ -576,6 +608,20 @@ func (vis *VarVisitor) visit(v interface{}) bool {
|
||||
vis.Walk(v[i])
|
||||
}
|
||||
return true
|
||||
case *With:
|
||||
if ref, ok := v.Target.Value.(Ref); ok {
|
||||
for _, t := range ref[1:] {
|
||||
vis.Walk(t)
|
||||
}
|
||||
}
|
||||
if ref, ok := v.Value.Value.(Ref); ok {
|
||||
for _, t := range ref[1:] {
|
||||
vis.Walk(t)
|
||||
}
|
||||
} else {
|
||||
vis.Walk(v.Value)
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
if v, ok := v.(Var); ok {
|
||||
@@ -634,14 +680,12 @@ func (vis *VarVisitor) Walk(x interface{}) {
|
||||
}
|
||||
case *Expr:
|
||||
switch ts := x.Terms.(type) {
|
||||
case *SomeDecl:
|
||||
case *Term, *SomeDecl, *Every:
|
||||
vis.Walk(ts)
|
||||
case []*Term:
|
||||
for _, t := range ts {
|
||||
vis.Walk(t)
|
||||
}
|
||||
case *Term:
|
||||
vis.Walk(ts)
|
||||
}
|
||||
for i := range x.With {
|
||||
vis.Walk(x.With[i])
|
||||
@@ -655,15 +699,15 @@ func (vis *VarVisitor) Walk(x interface{}) {
|
||||
for _, t := range x {
|
||||
vis.Walk(t)
|
||||
}
|
||||
case Object:
|
||||
for _, k := range x.Keys() {
|
||||
case *object:
|
||||
x.Foreach(func(k, v *Term) {
|
||||
vis.Walk(k)
|
||||
vis.Walk(x.Get(k))
|
||||
}
|
||||
case Array:
|
||||
for _, t := range x {
|
||||
})
|
||||
case *Array:
|
||||
x.Foreach(func(t *Term) {
|
||||
vis.Walk(t)
|
||||
}
|
||||
})
|
||||
case Set:
|
||||
for _, t := range x.Slice() {
|
||||
vis.Walk(t)
|
||||
@@ -682,5 +726,12 @@ func (vis *VarVisitor) Walk(x interface{}) {
|
||||
for _, t := range x {
|
||||
vis.Walk(t)
|
||||
}
|
||||
case *Every:
|
||||
if x.Key != nil {
|
||||
vis.Walk(x.Key)
|
||||
}
|
||||
vis.Walk(x.Value)
|
||||
vis.Walk(x.Domain)
|
||||
vis.Walk(x.Body)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user