@@ -107,7 +107,7 @@ def visit(self, node, *args, **kwargs):
107107 args [0 ] = self ._generators .get (args [0 ], args [0 ])
108108 return super ().visit (node , * args , ** kwargs )
109109
110- def visit_field (self , node , value , scope = None , ** kwargs ):
110+ def visit_field (self , node , value , ** kwargs ):
111111 try :
112112 return value .get (node ['value' ])
113113 except AttributeError :
@@ -118,7 +118,9 @@ def visit_field(self, node, value, scope=None, **kwargs):
118118 # If the field is not defined in the current object, then fall back
119119 # to checking in the scope chain, if there's any that has been
120120 # created.
121- return scope .get (node ['value' ], None )
121+ if 'scope' in kwargs :
122+ return kwargs ['scope' ].get (node ['value' ], None )
123+ return None
122124
123125 def visit_function_expression (self , node , value , ** kwargs ):
124126 resolved_args = []
@@ -177,7 +179,7 @@ def visit_projection(self, node, value, **kwargs):
177179 if not isinstance (base , (list , types .GeneratorType , map , filter )):
178180 return None
179181 for element in base :
180- current = self .visit (node ['children' ][1 ], element )
182+ current = self .visit (node ['children' ][1 ], element , ** kwargs )
181183 if current is not None :
182184 yield current
183185
@@ -206,7 +208,7 @@ def _is_false(self, value, **kwargs):
206208 return super ()._is_false (value )
207209
208210 def visit_expref (self , node , value , ** kwargs ):
209- return _Expression (node ['children' ][0 ], self , value , ** kwargs )
211+ return _Expression (node ['children' ][0 ], self , value )
210212
211213 def visit_subexpression (self , node , value , ** kwargs ):
212214 result = value
0 commit comments